@bastani/atomic 0.5.11 → 0.5.12-0

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 (506) hide show
  1. package/.agents/skills/adapt/SKILL.md +199 -0
  2. package/.agents/skills/advanced-evaluation/SKILL.md +402 -0
  3. package/.agents/skills/advanced-evaluation/references/bias-mitigation.md +288 -0
  4. package/.agents/skills/advanced-evaluation/references/evaluation-pipeline.md +43 -0
  5. package/.agents/skills/advanced-evaluation/references/implementation-patterns.md +315 -0
  6. package/.agents/skills/advanced-evaluation/references/metrics-guide.md +331 -0
  7. package/.agents/skills/advanced-evaluation/scripts/evaluation_example.py +392 -0
  8. package/.agents/skills/animate/SKILL.md +175 -0
  9. package/.agents/skills/arrange/SKILL.md +124 -0
  10. package/.agents/skills/audit/SKILL.md +148 -0
  11. package/.agents/skills/bdi-mental-states/SKILL.md +311 -0
  12. package/.agents/skills/bdi-mental-states/references/bdi-ontology-core.md +207 -0
  13. package/.agents/skills/bdi-mental-states/references/framework-integration.md +582 -0
  14. package/.agents/skills/bdi-mental-states/references/rdf-examples.md +315 -0
  15. package/.agents/skills/bdi-mental-states/references/sparql-competency.md +420 -0
  16. package/.agents/skills/bolder/SKILL.md +117 -0
  17. package/.agents/skills/bun/SKILL.md +199 -0
  18. package/.agents/skills/clarify/SKILL.md +183 -0
  19. package/.agents/skills/colorize/SKILL.md +143 -0
  20. package/.agents/skills/context-compression/SKILL.md +272 -0
  21. package/.agents/skills/context-compression/references/evaluation-framework.md +213 -0
  22. package/.agents/skills/context-compression/scripts/compression_evaluator.py +862 -0
  23. package/.agents/skills/context-compression/tests/test_compression_evaluator.py +56 -0
  24. package/.agents/skills/context-degradation/SKILL.md +206 -0
  25. package/.agents/skills/context-degradation/references/patterns.md +314 -0
  26. package/.agents/skills/context-degradation/scripts/degradation_detector.py +614 -0
  27. package/.agents/skills/context-fundamentals/SKILL.md +201 -0
  28. package/.agents/skills/context-fundamentals/references/context-components.md +283 -0
  29. package/.agents/skills/context-fundamentals/scripts/context_manager.py +533 -0
  30. package/.agents/skills/context-optimization/SKILL.md +195 -0
  31. package/.agents/skills/context-optimization/references/optimization_techniques.md +272 -0
  32. package/.agents/skills/context-optimization/scripts/compaction.py +562 -0
  33. package/.agents/skills/create-spec/SKILL.md +244 -0
  34. package/.agents/skills/critique/SKILL.md +225 -0
  35. package/.agents/skills/critique/reference/cognitive-load.md +106 -0
  36. package/.agents/skills/critique/reference/heuristics-scoring.md +234 -0
  37. package/.agents/skills/critique/reference/personas.md +178 -0
  38. package/.agents/skills/delight/SKILL.md +304 -0
  39. package/.agents/skills/distill/SKILL.md +122 -0
  40. package/.agents/skills/docx/LICENSE.txt +30 -0
  41. package/.agents/skills/docx/SKILL.md +590 -0
  42. package/.agents/skills/docx/scripts/__init__.py +1 -0
  43. package/.agents/skills/docx/scripts/accept_changes.py +135 -0
  44. package/.agents/skills/docx/scripts/comment.py +318 -0
  45. package/.agents/skills/docx/scripts/office/helpers/__init__.py +0 -0
  46. package/.agents/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
  47. package/.agents/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  48. package/.agents/skills/docx/scripts/office/pack.py +159 -0
  49. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  50. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  51. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  52. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  53. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  54. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  55. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  56. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  57. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  58. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  59. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  60. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  61. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  62. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  63. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  64. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  65. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  66. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  67. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  68. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  69. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  70. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  71. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  72. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  73. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  74. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  75. package/.agents/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  76. package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  77. package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  78. package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  79. package/.agents/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  80. package/.agents/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  81. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  82. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  83. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  84. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  85. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  86. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  87. package/.agents/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  88. package/.agents/skills/docx/scripts/office/soffice.py +183 -0
  89. package/.agents/skills/docx/scripts/office/unpack.py +132 -0
  90. package/.agents/skills/docx/scripts/office/validate.py +111 -0
  91. package/.agents/skills/docx/scripts/office/validators/__init__.py +15 -0
  92. package/.agents/skills/docx/scripts/office/validators/base.py +847 -0
  93. package/.agents/skills/docx/scripts/office/validators/docx.py +446 -0
  94. package/.agents/skills/docx/scripts/office/validators/pptx.py +275 -0
  95. package/.agents/skills/docx/scripts/office/validators/redlining.py +247 -0
  96. package/.agents/skills/docx/scripts/templates/comments.xml +3 -0
  97. package/.agents/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  98. package/.agents/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  99. package/.agents/skills/docx/scripts/templates/commentsIds.xml +3 -0
  100. package/.agents/skills/docx/scripts/templates/people.xml +3 -0
  101. package/.agents/skills/evaluation/SKILL.md +251 -0
  102. package/.agents/skills/evaluation/references/metrics.md +339 -0
  103. package/.agents/skills/evaluation/scripts/evaluator.py +627 -0
  104. package/.agents/skills/explain-code/SKILL.md +230 -0
  105. package/.agents/skills/extract/SKILL.md +91 -0
  106. package/.agents/skills/filesystem-context/SKILL.md +287 -0
  107. package/.agents/skills/filesystem-context/references/implementation-patterns.md +549 -0
  108. package/.agents/skills/filesystem-context/scripts/filesystem_context.py +425 -0
  109. package/.agents/skills/find-skills/SKILL.md +142 -0
  110. package/.agents/skills/frontend-design/SKILL.md +147 -0
  111. package/.agents/skills/frontend-design/reference/color-and-contrast.md +132 -0
  112. package/.agents/skills/frontend-design/reference/interaction-design.md +195 -0
  113. package/.agents/skills/frontend-design/reference/motion-design.md +99 -0
  114. package/.agents/skills/frontend-design/reference/responsive-design.md +114 -0
  115. package/.agents/skills/frontend-design/reference/spatial-design.md +100 -0
  116. package/.agents/skills/frontend-design/reference/typography.md +133 -0
  117. package/.agents/skills/frontend-design/reference/ux-writing.md +107 -0
  118. package/.agents/skills/gh-commit/SKILL.md +243 -0
  119. package/.agents/skills/gh-create-pr/SKILL.md +93 -0
  120. package/.agents/skills/harden/SKILL.md +354 -0
  121. package/.agents/skills/hosted-agents/SKILL.md +260 -0
  122. package/.agents/skills/hosted-agents/references/infrastructure-patterns.md +700 -0
  123. package/.agents/skills/hosted-agents/scripts/sandbox_manager.py +590 -0
  124. package/.agents/skills/impeccable/SKILL.md +365 -0
  125. package/.agents/skills/impeccable/reference/color-and-contrast.md +105 -0
  126. package/.agents/skills/impeccable/reference/craft.md +70 -0
  127. package/.agents/skills/impeccable/reference/extract.md +70 -0
  128. package/.agents/skills/impeccable/reference/interaction-design.md +195 -0
  129. package/.agents/skills/impeccable/reference/motion-design.md +99 -0
  130. package/.agents/skills/impeccable/reference/responsive-design.md +114 -0
  131. package/.agents/skills/impeccable/reference/spatial-design.md +100 -0
  132. package/.agents/skills/impeccable/reference/typography.md +142 -0
  133. package/.agents/skills/impeccable/reference/ux-writing.md +107 -0
  134. package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +214 -0
  135. package/.agents/skills/init/SKILL.md +138 -0
  136. package/.agents/skills/layout/SKILL.md +125 -0
  137. package/.agents/skills/liteparse/SKILL.md +222 -0
  138. package/.agents/skills/memory-systems/SKILL.md +219 -0
  139. package/.agents/skills/memory-systems/references/implementation.md +551 -0
  140. package/.agents/skills/memory-systems/scripts/memory_store.py +616 -0
  141. package/.agents/skills/multi-agent-patterns/SKILL.md +257 -0
  142. package/.agents/skills/multi-agent-patterns/references/frameworks.md +433 -0
  143. package/.agents/skills/multi-agent-patterns/scripts/coordination.py +613 -0
  144. package/.agents/skills/normalize/SKILL.md +70 -0
  145. package/.agents/skills/onboard/SKILL.md +245 -0
  146. package/.agents/skills/opentui/SKILL.md +201 -0
  147. package/.agents/skills/opentui/references/animation/REFERENCE.md +431 -0
  148. package/.agents/skills/opentui/references/components/REFERENCE.md +144 -0
  149. package/.agents/skills/opentui/references/components/code-diff.md +672 -0
  150. package/.agents/skills/opentui/references/components/containers.md +417 -0
  151. package/.agents/skills/opentui/references/components/inputs.md +531 -0
  152. package/.agents/skills/opentui/references/components/text-display.md +386 -0
  153. package/.agents/skills/opentui/references/core/REFERENCE.md +145 -0
  154. package/.agents/skills/opentui/references/core/api.md +543 -0
  155. package/.agents/skills/opentui/references/core/configuration.md +168 -0
  156. package/.agents/skills/opentui/references/core/gotchas.md +393 -0
  157. package/.agents/skills/opentui/references/core/patterns.md +449 -0
  158. package/.agents/skills/opentui/references/keyboard/REFERENCE.md +617 -0
  159. package/.agents/skills/opentui/references/layout/REFERENCE.md +337 -0
  160. package/.agents/skills/opentui/references/layout/patterns.md +444 -0
  161. package/.agents/skills/opentui/references/react/REFERENCE.md +174 -0
  162. package/.agents/skills/opentui/references/react/api.md +436 -0
  163. package/.agents/skills/opentui/references/react/configuration.md +302 -0
  164. package/.agents/skills/opentui/references/react/gotchas.md +443 -0
  165. package/.agents/skills/opentui/references/react/patterns.md +501 -0
  166. package/.agents/skills/opentui/references/solid/REFERENCE.md +201 -0
  167. package/.agents/skills/opentui/references/solid/api.md +564 -0
  168. package/.agents/skills/opentui/references/solid/configuration.md +316 -0
  169. package/.agents/skills/opentui/references/solid/gotchas.md +427 -0
  170. package/.agents/skills/opentui/references/solid/patterns.md +560 -0
  171. package/.agents/skills/opentui/references/testing/REFERENCE.md +614 -0
  172. package/.agents/skills/optimize/SKILL.md +266 -0
  173. package/.agents/skills/overdrive/SKILL.md +142 -0
  174. package/.agents/skills/pdf/LICENSE.txt +30 -0
  175. package/.agents/skills/pdf/SKILL.md +314 -0
  176. package/.agents/skills/pdf/forms.md +294 -0
  177. package/.agents/skills/pdf/reference.md +612 -0
  178. package/.agents/skills/pdf/scripts/check_bounding_boxes.py +65 -0
  179. package/.agents/skills/pdf/scripts/check_fillable_fields.py +11 -0
  180. package/.agents/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
  181. package/.agents/skills/pdf/scripts/create_validation_image.py +37 -0
  182. package/.agents/skills/pdf/scripts/extract_form_field_info.py +122 -0
  183. package/.agents/skills/pdf/scripts/extract_form_structure.py +115 -0
  184. package/.agents/skills/pdf/scripts/fill_fillable_fields.py +98 -0
  185. package/.agents/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  186. package/.agents/skills/playwright-cli/SKILL.md +344 -0
  187. package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
  188. package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
  189. package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
  190. package/.agents/skills/playwright-cli/references/running-code.md +231 -0
  191. package/.agents/skills/playwright-cli/references/session-management.md +169 -0
  192. package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
  193. package/.agents/skills/playwright-cli/references/test-generation.md +88 -0
  194. package/.agents/skills/playwright-cli/references/tracing.md +139 -0
  195. package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
  196. package/.agents/skills/polish/SKILL.md +224 -0
  197. package/.agents/skills/pptx/LICENSE.txt +30 -0
  198. package/.agents/skills/pptx/SKILL.md +232 -0
  199. package/.agents/skills/pptx/editing.md +205 -0
  200. package/.agents/skills/pptx/pptxgenjs.md +420 -0
  201. package/.agents/skills/pptx/scripts/__init__.py +0 -0
  202. package/.agents/skills/pptx/scripts/add_slide.py +195 -0
  203. package/.agents/skills/pptx/scripts/clean.py +286 -0
  204. package/.agents/skills/pptx/scripts/office/helpers/__init__.py +0 -0
  205. package/.agents/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
  206. package/.agents/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
  207. package/.agents/skills/pptx/scripts/office/pack.py +159 -0
  208. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  209. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  210. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  211. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  212. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  213. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  214. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  215. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  216. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  217. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  218. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  219. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  220. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  221. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  222. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  223. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  224. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  225. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  226. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  227. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  228. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  229. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  230. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  231. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  232. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  233. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  234. package/.agents/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  235. package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  236. package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  237. package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  238. package/.agents/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  239. package/.agents/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
  240. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  241. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  242. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  243. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  244. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  245. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  246. package/.agents/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  247. package/.agents/skills/pptx/scripts/office/soffice.py +183 -0
  248. package/.agents/skills/pptx/scripts/office/unpack.py +132 -0
  249. package/.agents/skills/pptx/scripts/office/validate.py +111 -0
  250. package/.agents/skills/pptx/scripts/office/validators/__init__.py +15 -0
  251. package/.agents/skills/pptx/scripts/office/validators/base.py +847 -0
  252. package/.agents/skills/pptx/scripts/office/validators/docx.py +446 -0
  253. package/.agents/skills/pptx/scripts/office/validators/pptx.py +275 -0
  254. package/.agents/skills/pptx/scripts/office/validators/redlining.py +247 -0
  255. package/.agents/skills/pptx/scripts/thumbnail.py +289 -0
  256. package/.agents/skills/project-development/SKILL.md +291 -0
  257. package/.agents/skills/project-development/references/case-studies.md +388 -0
  258. package/.agents/skills/project-development/references/pipeline-patterns.md +610 -0
  259. package/.agents/skills/project-development/scripts/pipeline_template.py +796 -0
  260. package/.agents/skills/prompt-engineer/SKILL.md +263 -0
  261. package/.agents/skills/prompt-engineer/references/advanced_patterns.md +271 -0
  262. package/.agents/skills/prompt-engineer/references/core_prompting.md +137 -0
  263. package/.agents/skills/prompt-engineer/references/quality_improvement.md +193 -0
  264. package/.agents/skills/quieter/SKILL.md +103 -0
  265. package/.agents/skills/research-codebase/SKILL.md +227 -0
  266. package/.agents/skills/shape/SKILL.md +96 -0
  267. package/.agents/skills/skill-creator/LICENSE.txt +202 -0
  268. package/.agents/skills/skill-creator/SKILL.md +485 -0
  269. package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
  270. package/.agents/skills/skill-creator/agents/comparator.md +202 -0
  271. package/.agents/skills/skill-creator/agents/grader.md +223 -0
  272. package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
  273. package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  274. package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  275. package/.agents/skills/skill-creator/references/schemas.md +430 -0
  276. package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
  277. package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  278. package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
  279. package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
  280. package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
  281. package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
  282. package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
  283. package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
  284. package/.agents/skills/skill-creator/scripts/utils.py +47 -0
  285. package/.agents/skills/sl-commit/SKILL.md +51 -0
  286. package/.agents/skills/sl-submit-diff/SKILL.md +55 -0
  287. package/.agents/skills/teach-impeccable/SKILL.md +71 -0
  288. package/.agents/skills/test-driven-development/SKILL.md +371 -0
  289. package/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
  290. package/.agents/skills/tool-design/SKILL.md +271 -0
  291. package/.agents/skills/tool-design/references/architectural_reduction.md +210 -0
  292. package/.agents/skills/tool-design/references/best_practices.md +176 -0
  293. package/.agents/skills/tool-design/scripts/description_generator.py +528 -0
  294. package/.agents/skills/typescript-advanced-types/SKILL.md +719 -0
  295. package/.agents/skills/typescript-expert/SKILL.md +428 -0
  296. package/.agents/skills/typescript-expert/references/tsconfig-strict.json +92 -0
  297. package/.agents/skills/typescript-expert/references/typescript-cheatsheet.md +383 -0
  298. package/.agents/skills/typescript-expert/references/utility-types.ts +335 -0
  299. package/.agents/skills/typescript-expert/scripts/ts_diagnostic.py +203 -0
  300. package/.agents/skills/typescript-react-reviewer/SKILL.md +200 -0
  301. package/.agents/skills/typescript-react-reviewer/references/antipatterns.md +510 -0
  302. package/.agents/skills/typescript-react-reviewer/references/checklist.md +267 -0
  303. package/.agents/skills/typescript-react-reviewer/references/react19-patterns.md +305 -0
  304. package/.agents/skills/typeset/SKILL.md +116 -0
  305. package/.agents/skills/workflow-creator/SKILL.md +337 -0
  306. package/.agents/skills/workflow-creator/references/agent-sessions.md +789 -0
  307. package/.agents/skills/workflow-creator/references/computation-and-validation.md +224 -0
  308. package/.agents/skills/workflow-creator/references/control-flow.md +450 -0
  309. package/.agents/skills/workflow-creator/references/discovery-and-verification.md +156 -0
  310. package/.agents/skills/workflow-creator/references/failure-modes.md +732 -0
  311. package/.agents/skills/workflow-creator/references/getting-started.md +289 -0
  312. package/.agents/skills/workflow-creator/references/session-config.md +355 -0
  313. package/.agents/skills/workflow-creator/references/state-and-data-flow.md +374 -0
  314. package/.agents/skills/workflow-creator/references/user-input.md +206 -0
  315. package/.agents/skills/workflow-creator/references/workflow-inputs.md +274 -0
  316. package/.agents/skills/xlsx/LICENSE.txt +30 -0
  317. package/.agents/skills/xlsx/SKILL.md +292 -0
  318. package/.agents/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
  319. package/.agents/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
  320. package/.agents/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
  321. package/.agents/skills/xlsx/scripts/office/pack.py +159 -0
  322. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  323. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  324. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  325. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  326. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  327. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  328. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  329. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  330. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  331. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  332. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  333. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  334. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  335. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  336. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  337. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  338. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  339. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  340. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  341. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  342. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  343. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  344. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  345. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  346. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  347. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  348. package/.agents/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  349. package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  350. package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  351. package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  352. package/.agents/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  353. package/.agents/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  354. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  355. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  356. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  357. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  358. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  359. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  360. package/.agents/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  361. package/.agents/skills/xlsx/scripts/office/soffice.py +183 -0
  362. package/.agents/skills/xlsx/scripts/office/unpack.py +132 -0
  363. package/.agents/skills/xlsx/scripts/office/validate.py +111 -0
  364. package/.agents/skills/xlsx/scripts/office/validators/__init__.py +15 -0
  365. package/.agents/skills/xlsx/scripts/office/validators/base.py +847 -0
  366. package/.agents/skills/xlsx/scripts/office/validators/docx.py +446 -0
  367. package/.agents/skills/xlsx/scripts/office/validators/pptx.py +275 -0
  368. package/.agents/skills/xlsx/scripts/office/validators/redlining.py +247 -0
  369. package/.agents/skills/xlsx/scripts/recalc.py +184 -0
  370. package/.claude/agents/reviewer.md +1 -0
  371. package/.github/agents/reviewer.md +1 -0
  372. package/.opencode/agents/reviewer.md +1 -0
  373. package/README.md +274 -169
  374. package/package.json +6 -7
  375. package/src/commands/cli/init/index.ts +2 -2
  376. package/src/commands/cli/init/scm.ts +7 -8
  377. package/src/commands/cli/workflow-command.test.ts +74 -0
  378. package/src/commands/cli/workflow.ts +7 -2
  379. package/src/scripts/bundle-configs.ts +128 -0
  380. package/src/sdk/components/compact-switcher.tsx +1 -1
  381. package/src/sdk/components/orchestrator-panel-store.ts +13 -0
  382. package/src/sdk/components/orchestrator-panel.tsx +10 -0
  383. package/src/sdk/components/statusline.tsx +13 -1
  384. package/src/sdk/providers/claude.ts +42 -0
  385. package/src/sdk/runtime/executor.ts +111 -32
  386. package/src/sdk/types.ts +7 -0
  387. package/src/sdk/workflows/builtin/ralph/claude/index.ts +132 -76
  388. package/src/sdk/workflows/builtin/ralph/copilot/index.ts +129 -71
  389. package/src/sdk/workflows/builtin/ralph/helpers/git.ts +184 -17
  390. package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +463 -79
  391. package/src/sdk/workflows/builtin/ralph/opencode/index.ts +124 -80
  392. package/src/services/system/auto-sync.ts +31 -51
  393. package/src/services/system/skills.ts +56 -60
  394. package/dist/lib/path-root-guard.d.ts +0 -4
  395. package/dist/lib/path-root-guard.d.ts.map +0 -1
  396. package/dist/sdk/components/color-utils.d.ts +0 -4
  397. package/dist/sdk/components/color-utils.d.ts.map +0 -1
  398. package/dist/sdk/components/compact-switcher.d.ts +0 -10
  399. package/dist/sdk/components/compact-switcher.d.ts.map +0 -1
  400. package/dist/sdk/components/connectors.d.ts +0 -15
  401. package/dist/sdk/components/connectors.d.ts.map +0 -1
  402. package/dist/sdk/components/connectors.test.d.ts +0 -2
  403. package/dist/sdk/components/connectors.test.d.ts.map +0 -1
  404. package/dist/sdk/components/edge.d.ts +0 -4
  405. package/dist/sdk/components/edge.d.ts.map +0 -1
  406. package/dist/sdk/components/error-boundary.d.ts +0 -23
  407. package/dist/sdk/components/error-boundary.d.ts.map +0 -1
  408. package/dist/sdk/components/graph-theme.d.ts +0 -17
  409. package/dist/sdk/components/graph-theme.d.ts.map +0 -1
  410. package/dist/sdk/components/header.d.ts +0 -3
  411. package/dist/sdk/components/header.d.ts.map +0 -1
  412. package/dist/sdk/components/hooks.d.ts +0 -15
  413. package/dist/sdk/components/hooks.d.ts.map +0 -1
  414. package/dist/sdk/components/layout.d.ts +0 -27
  415. package/dist/sdk/components/layout.d.ts.map +0 -1
  416. package/dist/sdk/components/layout.test.d.ts +0 -2
  417. package/dist/sdk/components/layout.test.d.ts.map +0 -1
  418. package/dist/sdk/components/node-card.d.ts +0 -10
  419. package/dist/sdk/components/node-card.d.ts.map +0 -1
  420. package/dist/sdk/components/orchestrator-panel-contexts.d.ts +0 -16
  421. package/dist/sdk/components/orchestrator-panel-contexts.d.ts.map +0 -1
  422. package/dist/sdk/components/orchestrator-panel-store.d.ts +0 -46
  423. package/dist/sdk/components/orchestrator-panel-store.d.ts.map +0 -1
  424. package/dist/sdk/components/orchestrator-panel-store.test.d.ts +0 -2
  425. package/dist/sdk/components/orchestrator-panel-store.test.d.ts.map +0 -1
  426. package/dist/sdk/components/orchestrator-panel-types.d.ts +0 -18
  427. package/dist/sdk/components/orchestrator-panel-types.d.ts.map +0 -1
  428. package/dist/sdk/components/orchestrator-panel.d.ts +0 -52
  429. package/dist/sdk/components/orchestrator-panel.d.ts.map +0 -1
  430. package/dist/sdk/components/session-graph-panel.d.ts +0 -7
  431. package/dist/sdk/components/session-graph-panel.d.ts.map +0 -1
  432. package/dist/sdk/components/status-helpers.d.ts +0 -6
  433. package/dist/sdk/components/status-helpers.d.ts.map +0 -1
  434. package/dist/sdk/components/statusline.d.ts +0 -7
  435. package/dist/sdk/components/statusline.d.ts.map +0 -1
  436. package/dist/sdk/components/workflow-picker-panel.d.ts +0 -123
  437. package/dist/sdk/components/workflow-picker-panel.d.ts.map +0 -1
  438. package/dist/sdk/define-workflow.d.ts +0 -78
  439. package/dist/sdk/define-workflow.d.ts.map +0 -1
  440. package/dist/sdk/define-workflow.test.d.ts +0 -2
  441. package/dist/sdk/define-workflow.test.d.ts.map +0 -1
  442. package/dist/sdk/errors.d.ts +0 -24
  443. package/dist/sdk/errors.d.ts.map +0 -1
  444. package/dist/sdk/errors.test.d.ts +0 -2
  445. package/dist/sdk/errors.test.d.ts.map +0 -1
  446. package/dist/sdk/index.d.ts +0 -13
  447. package/dist/sdk/index.d.ts.map +0 -1
  448. package/dist/sdk/providers/claude.d.ts +0 -170
  449. package/dist/sdk/providers/claude.d.ts.map +0 -1
  450. package/dist/sdk/providers/copilot.d.ts +0 -11
  451. package/dist/sdk/providers/copilot.d.ts.map +0 -1
  452. package/dist/sdk/providers/opencode.d.ts +0 -11
  453. package/dist/sdk/providers/opencode.d.ts.map +0 -1
  454. package/dist/sdk/runtime/discovery.d.ts +0 -86
  455. package/dist/sdk/runtime/discovery.d.ts.map +0 -1
  456. package/dist/sdk/runtime/executor-entry.d.ts +0 -11
  457. package/dist/sdk/runtime/executor-entry.d.ts.map +0 -1
  458. package/dist/sdk/runtime/executor.d.ts +0 -72
  459. package/dist/sdk/runtime/executor.d.ts.map +0 -1
  460. package/dist/sdk/runtime/executor.test.d.ts +0 -2
  461. package/dist/sdk/runtime/executor.test.d.ts.map +0 -1
  462. package/dist/sdk/runtime/graph-inference.d.ts +0 -35
  463. package/dist/sdk/runtime/graph-inference.d.ts.map +0 -1
  464. package/dist/sdk/runtime/loader.d.ts +0 -70
  465. package/dist/sdk/runtime/loader.d.ts.map +0 -1
  466. package/dist/sdk/runtime/panel.d.ts +0 -9
  467. package/dist/sdk/runtime/panel.d.ts.map +0 -1
  468. package/dist/sdk/runtime/theme.d.ts +0 -28
  469. package/dist/sdk/runtime/theme.d.ts.map +0 -1
  470. package/dist/sdk/runtime/tmux.d.ts +0 -297
  471. package/dist/sdk/runtime/tmux.d.ts.map +0 -1
  472. package/dist/sdk/types.d.ts +0 -295
  473. package/dist/sdk/types.d.ts.map +0 -1
  474. package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts +0 -62
  475. package/dist/sdk/workflows/builtin/deep-research-codebase/claude/index.d.ts.map +0 -1
  476. package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts +0 -46
  477. package/dist/sdk/workflows/builtin/deep-research-codebase/copilot/index.d.ts.map +0 -1
  478. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts +0 -26
  479. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/heuristic.d.ts.map +0 -1
  480. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts +0 -92
  481. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/prompts.d.ts.map +0 -1
  482. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts +0 -57
  483. package/dist/sdk/workflows/builtin/deep-research-codebase/helpers/scout.d.ts.map +0 -1
  484. package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts +0 -49
  485. package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +0 -1
  486. package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts +0 -14
  487. package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +0 -1
  488. package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts +0 -14
  489. package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +0 -1
  490. package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts +0 -17
  491. package/dist/sdk/workflows/builtin/ralph/helpers/git.d.ts.map +0 -1
  492. package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +0 -119
  493. package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +0 -1
  494. package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts +0 -20
  495. package/dist/sdk/workflows/builtin/ralph/helpers/review.d.ts.map +0 -1
  496. package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts +0 -14
  497. package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +0 -1
  498. package/dist/sdk/workflows/index.d.ts +0 -24
  499. package/dist/sdk/workflows/index.d.ts.map +0 -1
  500. package/dist/services/config/definitions.d.ts +0 -85
  501. package/dist/services/config/definitions.d.ts.map +0 -1
  502. package/dist/services/system/copy.d.ts +0 -77
  503. package/dist/services/system/copy.d.ts.map +0 -1
  504. package/dist/services/system/detect.d.ts +0 -75
  505. package/dist/services/system/detect.d.ts.map +0 -1
  506. package/tsconfig.json +0 -33
@@ -0,0 +1,719 @@
1
+ ---
2
+ name: typescript-advanced-types
3
+ description: Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.
4
+ metadata:
5
+ internal: true
6
+ ---
7
+
8
+ # TypeScript Advanced Types
9
+
10
+ Comprehensive guidance for mastering TypeScript's advanced type system including generics, conditional types, mapped types, template literal types, and utility types for building robust, type-safe applications.
11
+
12
+ ## When to Use This Skill
13
+
14
+ - Building type-safe libraries or frameworks
15
+ - Creating reusable generic components
16
+ - Implementing complex type inference logic
17
+ - Designing type-safe API clients
18
+ - Building form validation systems
19
+ - Creating strongly-typed configuration objects
20
+ - Implementing type-safe state management
21
+ - Migrating JavaScript codebases to TypeScript
22
+
23
+ ## Core Concepts
24
+
25
+ ### 1. Generics
26
+
27
+ **Purpose:** Create reusable, type-flexible components while maintaining type safety.
28
+
29
+ **Basic Generic Function:**
30
+
31
+ ```typescript
32
+ function identity<T>(value: T): T {
33
+ return value;
34
+ }
35
+
36
+ const num = identity<number>(42); // Type: number
37
+ const str = identity<string>("hello"); // Type: string
38
+ const auto = identity(true); // Type inferred: boolean
39
+ ```
40
+
41
+ **Generic Constraints:**
42
+
43
+ ```typescript
44
+ interface HasLength {
45
+ length: number;
46
+ }
47
+
48
+ function logLength<T extends HasLength>(item: T): T {
49
+ console.log(item.length);
50
+ return item;
51
+ }
52
+
53
+ logLength("hello"); // OK: string has length
54
+ logLength([1, 2, 3]); // OK: array has length
55
+ logLength({ length: 10 }); // OK: object has length
56
+ // logLength(42); // Error: number has no length
57
+ ```
58
+
59
+ **Multiple Type Parameters:**
60
+
61
+ ```typescript
62
+ function merge<T, U>(obj1: T, obj2: U): T & U {
63
+ return { ...obj1, ...obj2 };
64
+ }
65
+
66
+ const merged = merge({ name: "John" }, { age: 30 });
67
+ // Type: { name: string } & { age: number }
68
+ ```
69
+
70
+ ### 2. Conditional Types
71
+
72
+ **Purpose:** Create types that depend on conditions, enabling sophisticated type logic.
73
+
74
+ **Basic Conditional Type:**
75
+
76
+ ```typescript
77
+ type IsString<T> = T extends string ? true : false;
78
+
79
+ type A = IsString<string>; // true
80
+ type B = IsString<number>; // false
81
+ ```
82
+
83
+ **Extracting Return Types:**
84
+
85
+ ```typescript
86
+ type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
87
+
88
+ function getUser() {
89
+ return { id: 1, name: "John" };
90
+ }
91
+
92
+ type User = ReturnType<typeof getUser>;
93
+ // Type: { id: number; name: string; }
94
+ ```
95
+
96
+ **Distributive Conditional Types:**
97
+
98
+ ```typescript
99
+ type ToArray<T> = T extends any ? T[] : never;
100
+
101
+ type StrOrNumArray = ToArray<string | number>;
102
+ // Type: string[] | number[]
103
+ ```
104
+
105
+ **Nested Conditions:**
106
+
107
+ ```typescript
108
+ type TypeName<T> = T extends string
109
+ ? "string"
110
+ : T extends number
111
+ ? "number"
112
+ : T extends boolean
113
+ ? "boolean"
114
+ : T extends undefined
115
+ ? "undefined"
116
+ : T extends Function
117
+ ? "function"
118
+ : "object";
119
+
120
+ type T1 = TypeName<string>; // "string"
121
+ type T2 = TypeName<() => void>; // "function"
122
+ ```
123
+
124
+ ### 3. Mapped Types
125
+
126
+ **Purpose:** Transform existing types by iterating over their properties.
127
+
128
+ **Basic Mapped Type:**
129
+
130
+ ```typescript
131
+ type Readonly<T> = {
132
+ readonly [P in keyof T]: T[P];
133
+ };
134
+
135
+ interface User {
136
+ id: number;
137
+ name: string;
138
+ }
139
+
140
+ type ReadonlyUser = Readonly<User>;
141
+ // Type: { readonly id: number; readonly name: string; }
142
+ ```
143
+
144
+ **Optional Properties:**
145
+
146
+ ```typescript
147
+ type Partial<T> = {
148
+ [P in keyof T]?: T[P];
149
+ };
150
+
151
+ type PartialUser = Partial<User>;
152
+ // Type: { id?: number; name?: string; }
153
+ ```
154
+
155
+ **Key Remapping:**
156
+
157
+ ```typescript
158
+ type Getters<T> = {
159
+ [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
160
+ };
161
+
162
+ interface Person {
163
+ name: string;
164
+ age: number;
165
+ }
166
+
167
+ type PersonGetters = Getters<Person>;
168
+ // Type: { getName: () => string; getAge: () => number; }
169
+ ```
170
+
171
+ **Filtering Properties:**
172
+
173
+ ```typescript
174
+ type PickByType<T, U> = {
175
+ [K in keyof T as T[K] extends U ? K : never]: T[K];
176
+ };
177
+
178
+ interface Mixed {
179
+ id: number;
180
+ name: string;
181
+ age: number;
182
+ active: boolean;
183
+ }
184
+
185
+ type OnlyNumbers = PickByType<Mixed, number>;
186
+ // Type: { id: number; age: number; }
187
+ ```
188
+
189
+ ### 4. Template Literal Types
190
+
191
+ **Purpose:** Create string-based types with pattern matching and transformation.
192
+
193
+ **Basic Template Literal:**
194
+
195
+ ```typescript
196
+ type EventName = "click" | "focus" | "blur";
197
+ type EventHandler = `on${Capitalize<EventName>}`;
198
+ // Type: "onClick" | "onFocus" | "onBlur"
199
+ ```
200
+
201
+ **String Manipulation:**
202
+
203
+ ```typescript
204
+ type UppercaseGreeting = Uppercase<"hello">; // "HELLO"
205
+ type LowercaseGreeting = Lowercase<"HELLO">; // "hello"
206
+ type CapitalizedName = Capitalize<"john">; // "John"
207
+ type UncapitalizedName = Uncapitalize<"John">; // "john"
208
+ ```
209
+
210
+ **Path Building:**
211
+
212
+ ```typescript
213
+ type Path<T> = T extends object
214
+ ? {
215
+ [K in keyof T]: K extends string ? `${K}` | `${K}.${Path<T[K]>}` : never;
216
+ }[keyof T]
217
+ : never;
218
+
219
+ interface Config {
220
+ server: {
221
+ host: string;
222
+ port: number;
223
+ };
224
+ database: {
225
+ url: string;
226
+ };
227
+ }
228
+
229
+ type ConfigPath = Path<Config>;
230
+ // Type: "server" | "database" | "server.host" | "server.port" | "database.url"
231
+ ```
232
+
233
+ ### 5. Utility Types
234
+
235
+ **Built-in Utility Types:**
236
+
237
+ ```typescript
238
+ // Partial<T> - Make all properties optional
239
+ type PartialUser = Partial<User>;
240
+
241
+ // Required<T> - Make all properties required
242
+ type RequiredUser = Required<PartialUser>;
243
+
244
+ // Readonly<T> - Make all properties readonly
245
+ type ReadonlyUser = Readonly<User>;
246
+
247
+ // Pick<T, K> - Select specific properties
248
+ type UserName = Pick<User, "name" | "email">;
249
+
250
+ // Omit<T, K> - Remove specific properties
251
+ type UserWithoutPassword = Omit<User, "password">;
252
+
253
+ // Exclude<T, U> - Exclude types from union
254
+ type T1 = Exclude<"a" | "b" | "c", "a">; // "b" | "c"
255
+
256
+ // Extract<T, U> - Extract types from union
257
+ type T2 = Extract<"a" | "b" | "c", "a" | "b">; // "a" | "b"
258
+
259
+ // NonNullable<T> - Exclude null and undefined
260
+ type T3 = NonNullable<string | null | undefined>; // string
261
+
262
+ // Record<K, T> - Create object type with keys K and values T
263
+ type PageInfo = Record<"home" | "about", { title: string }>;
264
+ ```
265
+
266
+ ## Advanced Patterns
267
+
268
+ ### Pattern 1: Type-Safe Event Emitter
269
+
270
+ ```typescript
271
+ type EventMap = {
272
+ "user:created": { id: string; name: string };
273
+ "user:updated": { id: string };
274
+ "user:deleted": { id: string };
275
+ };
276
+
277
+ class TypedEventEmitter<T extends Record<string, any>> {
278
+ private listeners: {
279
+ [K in keyof T]?: Array<(data: T[K]) => void>;
280
+ } = {};
281
+
282
+ on<K extends keyof T>(event: K, callback: (data: T[K]) => void): void {
283
+ if (!this.listeners[event]) {
284
+ this.listeners[event] = [];
285
+ }
286
+ this.listeners[event]!.push(callback);
287
+ }
288
+
289
+ emit<K extends keyof T>(event: K, data: T[K]): void {
290
+ const callbacks = this.listeners[event];
291
+ if (callbacks) {
292
+ callbacks.forEach((callback) => callback(data));
293
+ }
294
+ }
295
+ }
296
+
297
+ const emitter = new TypedEventEmitter<EventMap>();
298
+
299
+ emitter.on("user:created", (data) => {
300
+ console.log(data.id, data.name); // Type-safe!
301
+ });
302
+
303
+ emitter.emit("user:created", { id: "1", name: "John" });
304
+ // emitter.emit("user:created", { id: "1" }); // Error: missing 'name'
305
+ ```
306
+
307
+ ### Pattern 2: Type-Safe API Client
308
+
309
+ ```typescript
310
+ type HTTPMethod = "GET" | "POST" | "PUT" | "DELETE";
311
+
312
+ type EndpointConfig = {
313
+ "/users": {
314
+ GET: { response: User[] };
315
+ POST: { body: { name: string; email: string }; response: User };
316
+ };
317
+ "/users/:id": {
318
+ GET: { params: { id: string }; response: User };
319
+ PUT: { params: { id: string }; body: Partial<User>; response: User };
320
+ DELETE: { params: { id: string }; response: void };
321
+ };
322
+ };
323
+
324
+ type ExtractParams<T> = T extends { params: infer P } ? P : never;
325
+ type ExtractBody<T> = T extends { body: infer B } ? B : never;
326
+ type ExtractResponse<T> = T extends { response: infer R } ? R : never;
327
+
328
+ class APIClient<Config extends Record<string, Record<HTTPMethod, any>>> {
329
+ async request<Path extends keyof Config, Method extends keyof Config[Path]>(
330
+ path: Path,
331
+ method: Method,
332
+ ...[options]: ExtractParams<Config[Path][Method]> extends never
333
+ ? ExtractBody<Config[Path][Method]> extends never
334
+ ? []
335
+ : [{ body: ExtractBody<Config[Path][Method]> }]
336
+ : [
337
+ {
338
+ params: ExtractParams<Config[Path][Method]>;
339
+ body?: ExtractBody<Config[Path][Method]>;
340
+ },
341
+ ]
342
+ ): Promise<ExtractResponse<Config[Path][Method]>> {
343
+ // Implementation here
344
+ return {} as any;
345
+ }
346
+ }
347
+
348
+ const api = new APIClient<EndpointConfig>();
349
+
350
+ // Type-safe API calls
351
+ const users = await api.request("/users", "GET");
352
+ // Type: User[]
353
+
354
+ const newUser = await api.request("/users", "POST", {
355
+ body: { name: "John", email: "john@example.com" },
356
+ });
357
+ // Type: User
358
+
359
+ const user = await api.request("/users/:id", "GET", {
360
+ params: { id: "123" },
361
+ });
362
+ // Type: User
363
+ ```
364
+
365
+ ### Pattern 3: Builder Pattern with Type Safety
366
+
367
+ ```typescript
368
+ type BuilderState<T> = {
369
+ [K in keyof T]: T[K] | undefined;
370
+ };
371
+
372
+ type RequiredKeys<T> = {
373
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K;
374
+ }[keyof T];
375
+
376
+ type OptionalKeys<T> = {
377
+ [K in keyof T]-?: {} extends Pick<T, K> ? K : never;
378
+ }[keyof T];
379
+
380
+ type IsComplete<T, S> =
381
+ RequiredKeys<T> extends keyof S
382
+ ? S[RequiredKeys<T>] extends undefined
383
+ ? false
384
+ : true
385
+ : false;
386
+
387
+ class Builder<T, S extends BuilderState<T> = {}> {
388
+ private state: S = {} as S;
389
+
390
+ set<K extends keyof T>(key: K, value: T[K]): Builder<T, S & Record<K, T[K]>> {
391
+ this.state[key] = value;
392
+ return this as any;
393
+ }
394
+
395
+ build(this: IsComplete<T, S> extends true ? this : never): T {
396
+ return this.state as T;
397
+ }
398
+ }
399
+
400
+ interface User {
401
+ id: string;
402
+ name: string;
403
+ email: string;
404
+ age?: number;
405
+ }
406
+
407
+ const builder = new Builder<User>();
408
+
409
+ const user = builder
410
+ .set("id", "1")
411
+ .set("name", "John")
412
+ .set("email", "john@example.com")
413
+ .build(); // OK: all required fields set
414
+
415
+ // const incomplete = builder
416
+ // .set("id", "1")
417
+ // .build(); // Error: missing required fields
418
+ ```
419
+
420
+ ### Pattern 4: Deep Readonly/Partial
421
+
422
+ ```typescript
423
+ type DeepReadonly<T> = {
424
+ readonly [P in keyof T]: T[P] extends object
425
+ ? T[P] extends Function
426
+ ? T[P]
427
+ : DeepReadonly<T[P]>
428
+ : T[P];
429
+ };
430
+
431
+ type DeepPartial<T> = {
432
+ [P in keyof T]?: T[P] extends object
433
+ ? T[P] extends Array<infer U>
434
+ ? Array<DeepPartial<U>>
435
+ : DeepPartial<T[P]>
436
+ : T[P];
437
+ };
438
+
439
+ interface Config {
440
+ server: {
441
+ host: string;
442
+ port: number;
443
+ ssl: {
444
+ enabled: boolean;
445
+ cert: string;
446
+ };
447
+ };
448
+ database: {
449
+ url: string;
450
+ pool: {
451
+ min: number;
452
+ max: number;
453
+ };
454
+ };
455
+ }
456
+
457
+ type ReadonlyConfig = DeepReadonly<Config>;
458
+ // All nested properties are readonly
459
+
460
+ type PartialConfig = DeepPartial<Config>;
461
+ // All nested properties are optional
462
+ ```
463
+
464
+ ### Pattern 5: Type-Safe Form Validation
465
+
466
+ ```typescript
467
+ type ValidationRule<T> = {
468
+ validate: (value: T) => boolean;
469
+ message: string;
470
+ };
471
+
472
+ type FieldValidation<T> = {
473
+ [K in keyof T]?: ValidationRule<T[K]>[];
474
+ };
475
+
476
+ type ValidationErrors<T> = {
477
+ [K in keyof T]?: string[];
478
+ };
479
+
480
+ class FormValidator<T extends Record<string, any>> {
481
+ constructor(private rules: FieldValidation<T>) {}
482
+
483
+ validate(data: T): ValidationErrors<T> | null {
484
+ const errors: ValidationErrors<T> = {};
485
+ let hasErrors = false;
486
+
487
+ for (const key in this.rules) {
488
+ const fieldRules = this.rules[key];
489
+ const value = data[key];
490
+
491
+ if (fieldRules) {
492
+ const fieldErrors: string[] = [];
493
+
494
+ for (const rule of fieldRules) {
495
+ if (!rule.validate(value)) {
496
+ fieldErrors.push(rule.message);
497
+ }
498
+ }
499
+
500
+ if (fieldErrors.length > 0) {
501
+ errors[key] = fieldErrors;
502
+ hasErrors = true;
503
+ }
504
+ }
505
+ }
506
+
507
+ return hasErrors ? errors : null;
508
+ }
509
+ }
510
+
511
+ interface LoginForm {
512
+ email: string;
513
+ password: string;
514
+ }
515
+
516
+ const validator = new FormValidator<LoginForm>({
517
+ email: [
518
+ {
519
+ validate: (v) => v.includes("@"),
520
+ message: "Email must contain @",
521
+ },
522
+ {
523
+ validate: (v) => v.length > 0,
524
+ message: "Email is required",
525
+ },
526
+ ],
527
+ password: [
528
+ {
529
+ validate: (v) => v.length >= 8,
530
+ message: "Password must be at least 8 characters",
531
+ },
532
+ ],
533
+ });
534
+
535
+ const errors = validator.validate({
536
+ email: "invalid",
537
+ password: "short",
538
+ });
539
+ // Type: { email?: string[]; password?: string[]; } | null
540
+ ```
541
+
542
+ ### Pattern 6: Discriminated Unions
543
+
544
+ ```typescript
545
+ type Success<T> = {
546
+ status: "success";
547
+ data: T;
548
+ };
549
+
550
+ type Error = {
551
+ status: "error";
552
+ error: string;
553
+ };
554
+
555
+ type Loading = {
556
+ status: "loading";
557
+ };
558
+
559
+ type AsyncState<T> = Success<T> | Error | Loading;
560
+
561
+ function handleState<T>(state: AsyncState<T>): void {
562
+ switch (state.status) {
563
+ case "success":
564
+ console.log(state.data); // Type: T
565
+ break;
566
+ case "error":
567
+ console.log(state.error); // Type: string
568
+ break;
569
+ case "loading":
570
+ console.log("Loading...");
571
+ break;
572
+ }
573
+ }
574
+
575
+ // Type-safe state machine
576
+ type State =
577
+ | { type: "idle" }
578
+ | { type: "fetching"; requestId: string }
579
+ | { type: "success"; data: any }
580
+ | { type: "error"; error: Error };
581
+
582
+ type Event =
583
+ | { type: "FETCH"; requestId: string }
584
+ | { type: "SUCCESS"; data: any }
585
+ | { type: "ERROR"; error: Error }
586
+ | { type: "RESET" };
587
+
588
+ function reducer(state: State, event: Event): State {
589
+ switch (state.type) {
590
+ case "idle":
591
+ return event.type === "FETCH"
592
+ ? { type: "fetching", requestId: event.requestId }
593
+ : state;
594
+ case "fetching":
595
+ if (event.type === "SUCCESS") {
596
+ return { type: "success", data: event.data };
597
+ }
598
+ if (event.type === "ERROR") {
599
+ return { type: "error", error: event.error };
600
+ }
601
+ return state;
602
+ case "success":
603
+ case "error":
604
+ return event.type === "RESET" ? { type: "idle" } : state;
605
+ }
606
+ }
607
+ ```
608
+
609
+ ## Type Inference Techniques
610
+
611
+ ### 1. Infer Keyword
612
+
613
+ ```typescript
614
+ // Extract array element type
615
+ type ElementType<T> = T extends (infer U)[] ? U : never;
616
+
617
+ type NumArray = number[];
618
+ type Num = ElementType<NumArray>; // number
619
+
620
+ // Extract promise type
621
+ type PromiseType<T> = T extends Promise<infer U> ? U : never;
622
+
623
+ type AsyncNum = PromiseType<Promise<number>>; // number
624
+
625
+ // Extract function parameters
626
+ type Parameters<T> = T extends (...args: infer P) => any ? P : never;
627
+
628
+ function foo(a: string, b: number) {}
629
+ type FooParams = Parameters<typeof foo>; // [string, number]
630
+ ```
631
+
632
+ ### 2. Type Guards
633
+
634
+ ```typescript
635
+ function isString(value: unknown): value is string {
636
+ return typeof value === "string";
637
+ }
638
+
639
+ function isArrayOf<T>(
640
+ value: unknown,
641
+ guard: (item: unknown) => item is T,
642
+ ): value is T[] {
643
+ return Array.isArray(value) && value.every(guard);
644
+ }
645
+
646
+ const data: unknown = ["a", "b", "c"];
647
+
648
+ if (isArrayOf(data, isString)) {
649
+ data.forEach((s) => s.toUpperCase()); // Type: string[]
650
+ }
651
+ ```
652
+
653
+ ### 3. Assertion Functions
654
+
655
+ ```typescript
656
+ function assertIsString(value: unknown): asserts value is string {
657
+ if (typeof value !== "string") {
658
+ throw new Error("Not a string");
659
+ }
660
+ }
661
+
662
+ function processValue(value: unknown) {
663
+ assertIsString(value);
664
+ // value is now typed as string
665
+ console.log(value.toUpperCase());
666
+ }
667
+ ```
668
+
669
+ ## Best Practices
670
+
671
+ 1. **Use `unknown` over `any`**: Enforce type checking
672
+ 2. **Prefer `interface` for object shapes**: Better error messages
673
+ 3. **Use `type` for unions and complex types**: More flexible
674
+ 4. **Leverage type inference**: Let TypeScript infer when possible
675
+ 5. **Create helper types**: Build reusable type utilities
676
+ 6. **Use const assertions**: Preserve literal types
677
+ 7. **Avoid type assertions**: Use type guards instead
678
+ 8. **Document complex types**: Add JSDoc comments
679
+ 9. **Use strict mode**: Enable all strict compiler options
680
+ 10. **Test your types**: Use type tests to verify type behavior
681
+
682
+ ## Type Testing
683
+
684
+ ```typescript
685
+ // Type assertion tests
686
+ type AssertEqual<T, U> = [T] extends [U]
687
+ ? [U] extends [T]
688
+ ? true
689
+ : false
690
+ : false;
691
+
692
+ type Test1 = AssertEqual<string, string>; // true
693
+ type Test2 = AssertEqual<string, number>; // false
694
+ type Test3 = AssertEqual<string | number, string>; // false
695
+
696
+ // Expect error helper
697
+ type ExpectError<T extends never> = T;
698
+
699
+ // Example usage
700
+ type ShouldError = ExpectError<AssertEqual<string, number>>;
701
+ ```
702
+
703
+ ## Common Pitfalls
704
+
705
+ 1. **Over-using `any`**: Defeats the purpose of TypeScript
706
+ 2. **Ignoring strict null checks**: Can lead to runtime errors
707
+ 3. **Too complex types**: Can slow down compilation
708
+ 4. **Not using discriminated unions**: Misses type narrowing opportunities
709
+ 5. **Forgetting readonly modifiers**: Allows unintended mutations
710
+ 6. **Circular type references**: Can cause compiler errors
711
+ 7. **Not handling edge cases**: Like empty arrays or null values
712
+
713
+ ## Performance Considerations
714
+
715
+ - Avoid deeply nested conditional types
716
+ - Use simple types when possible
717
+ - Cache complex type computations
718
+ - Limit recursion depth in recursive types
719
+ - Use build tools to skip type checking in production