oh-my-customcode 0.1.2 → 0.1.4

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 (233) hide show
  1. package/README.md +45 -32
  2. package/dist/cli/index.js +12 -20
  3. package/dist/index.js +3 -3
  4. package/package.json +2 -2
  5. package/templates/.claude/rules/MUST-orchestrator-coordination.md +68 -0
  6. package/templates/.claude/rules/MUST-parallel-execution.md +66 -9
  7. package/templates/.claude/rules/MUST-tool-identification.md +79 -17
  8. package/templates/.claude/rules/SHOULD-hud-statusline.md +8 -1
  9. package/templates/agents/index.yaml +6 -0
  10. package/templates/agents/infra-engineer/aws-expert/refs/aws/common-patterns.md +169 -0
  11. package/templates/agents/infra-engineer/aws-expert/refs/aws/index.yaml +26 -0
  12. package/templates/agents/infra-engineer/aws-expert/refs/aws/well-architected.md +143 -0
  13. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/SKILL.md +279 -0
  14. package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/index.yaml +27 -0
  15. package/templates/agents/infra-engineer/docker-expert/refs/docker/compose-best-practices.md +284 -0
  16. package/templates/agents/infra-engineer/docker-expert/refs/docker/dockerfile-best-practices.md +262 -0
  17. package/templates/agents/infra-engineer/docker-expert/refs/docker/index.yaml +26 -0
  18. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/SKILL.md +274 -0
  19. package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/index.yaml +26 -0
  20. package/templates/agents/manager/creator/refs/rules/MAY-optimization.md +93 -0
  21. package/templates/agents/manager/creator/refs/rules/MUST-agent-design.md +107 -0
  22. package/templates/agents/manager/creator/refs/rules/MUST-agent-identification.md +108 -0
  23. package/templates/agents/manager/creator/refs/rules/MUST-continuous-improvement.md +132 -0
  24. package/templates/agents/manager/creator/refs/rules/MUST-intent-transparency.md +199 -0
  25. package/templates/agents/manager/creator/refs/rules/MUST-language-policy.md +62 -0
  26. package/templates/agents/manager/creator/refs/rules/MUST-orchestrator-coordination.md +334 -0
  27. package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +398 -0
  28. package/templates/agents/manager/creator/refs/rules/MUST-permissions.md +84 -0
  29. package/templates/agents/manager/creator/refs/rules/MUST-safety.md +69 -0
  30. package/templates/agents/manager/creator/refs/rules/MUST-sync-verification.md +219 -0
  31. package/templates/agents/manager/creator/refs/rules/MUST-tool-identification.md +174 -0
  32. package/templates/agents/manager/creator/refs/rules/SHOULD-ecomode.md +145 -0
  33. package/templates/agents/manager/creator/refs/rules/SHOULD-error-handling.md +102 -0
  34. package/templates/agents/manager/creator/refs/rules/SHOULD-hud-statusline.md +96 -0
  35. package/templates/agents/manager/creator/refs/rules/SHOULD-interaction.md +103 -0
  36. package/templates/agents/manager/creator/refs/rules/SHOULD-memory-integration.md +114 -0
  37. package/templates/agents/manager/creator/refs/rules/SHOULD-pipeline-mode.md +165 -0
  38. package/templates/agents/manager/creator/refs/rules/index.yaml +125 -0
  39. package/templates/agents/manager/supplier/refs/guides/aws/common-patterns.md +169 -0
  40. package/templates/agents/manager/supplier/refs/guides/aws/index.yaml +26 -0
  41. package/templates/agents/manager/supplier/refs/guides/aws/well-architected.md +143 -0
  42. package/templates/agents/manager/supplier/refs/guides/claude-code/01-overview.md +42 -0
  43. package/templates/agents/manager/supplier/refs/guides/claude-code/03-tools.md +107 -0
  44. package/templates/agents/manager/supplier/refs/guides/claude-code/04-agent-skills.md +90 -0
  45. package/templates/agents/manager/supplier/refs/guides/claude-code/05-agent-sdk.md +129 -0
  46. package/templates/agents/manager/supplier/refs/guides/claude-code/06-mcp.md +165 -0
  47. package/templates/agents/manager/supplier/refs/guides/claude-code/07-prompt-engineering.md +100 -0
  48. package/templates/agents/manager/supplier/refs/guides/claude-code/08-testing.md +58 -0
  49. package/templates/agents/manager/supplier/refs/guides/claude-code/09-guardrails.md +80 -0
  50. package/templates/agents/manager/supplier/refs/guides/claude-code/10-monitoring.md +89 -0
  51. package/templates/agents/manager/supplier/refs/guides/claude-code/11-sub-agents.md +159 -0
  52. package/templates/agents/manager/supplier/refs/guides/claude-code/index.yaml +51 -0
  53. package/templates/agents/manager/supplier/refs/guides/docker/compose-best-practices.md +284 -0
  54. package/templates/agents/manager/supplier/refs/guides/docker/dockerfile-best-practices.md +262 -0
  55. package/templates/agents/manager/supplier/refs/guides/docker/index.yaml +26 -0
  56. package/templates/agents/manager/supplier/refs/guides/fastapi/best-practices.md +232 -0
  57. package/templates/agents/manager/supplier/refs/guides/fastapi/index.yaml +21 -0
  58. package/templates/agents/manager/supplier/refs/guides/go-backend/index.yaml +26 -0
  59. package/templates/agents/manager/supplier/refs/guides/go-backend/project-layout.md +243 -0
  60. package/templates/agents/manager/supplier/refs/guides/go-backend/uber-style.md +212 -0
  61. package/templates/agents/manager/supplier/refs/guides/golang/concurrency.md +282 -0
  62. package/templates/agents/manager/supplier/refs/guides/golang/effective-go.md +309 -0
  63. package/templates/agents/manager/supplier/refs/guides/golang/error-handling.md +250 -0
  64. package/templates/agents/manager/supplier/refs/guides/golang/index.yaml +27 -0
  65. package/templates/agents/manager/supplier/refs/guides/index.yaml +101 -0
  66. package/templates/agents/manager/supplier/refs/guides/kotlin/coding-conventions.md +247 -0
  67. package/templates/agents/manager/supplier/refs/guides/kotlin/idioms.md +234 -0
  68. package/templates/agents/manager/supplier/refs/guides/kotlin/index.yaml +26 -0
  69. package/templates/agents/manager/supplier/refs/guides/python/index.yaml +26 -0
  70. package/templates/agents/manager/supplier/refs/guides/python/pep8-style-guide.md +202 -0
  71. package/templates/agents/manager/supplier/refs/guides/python/zen-of-python.md +79 -0
  72. package/templates/agents/manager/supplier/refs/guides/rust/error-handling.md +262 -0
  73. package/templates/agents/manager/supplier/refs/guides/rust/index.yaml +26 -0
  74. package/templates/agents/manager/supplier/refs/guides/rust/ownership.md +180 -0
  75. package/templates/agents/manager/supplier/refs/guides/springboot/best-practices.md +361 -0
  76. package/templates/agents/manager/supplier/refs/guides/springboot/index.yaml +22 -0
  77. package/templates/agents/manager/supplier/refs/guides/typescript/advanced-types.md +225 -0
  78. package/templates/agents/manager/supplier/refs/guides/typescript/index.yaml +26 -0
  79. package/templates/agents/manager/supplier/refs/guides/typescript/type-system.md +219 -0
  80. package/templates/agents/manager/supplier/refs/guides/web-design/accessibility.md +66 -0
  81. package/templates/agents/manager/supplier/refs/guides/web-design/index.yaml +20 -0
  82. package/templates/agents/manager/supplier/refs/guides/web-design/performance.md +102 -0
  83. package/templates/agents/manager/supplier/refs/rules/MAY-optimization.md +93 -0
  84. package/templates/agents/manager/supplier/refs/rules/MUST-agent-design.md +107 -0
  85. package/templates/agents/manager/supplier/refs/rules/MUST-agent-identification.md +108 -0
  86. package/templates/agents/manager/supplier/refs/rules/MUST-continuous-improvement.md +132 -0
  87. package/templates/agents/manager/supplier/refs/rules/MUST-intent-transparency.md +199 -0
  88. package/templates/agents/manager/supplier/refs/rules/MUST-language-policy.md +62 -0
  89. package/templates/agents/manager/supplier/refs/rules/MUST-orchestrator-coordination.md +334 -0
  90. package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +398 -0
  91. package/templates/agents/manager/supplier/refs/rules/MUST-permissions.md +84 -0
  92. package/templates/agents/manager/supplier/refs/rules/MUST-safety.md +69 -0
  93. package/templates/agents/manager/supplier/refs/rules/MUST-sync-verification.md +219 -0
  94. package/templates/agents/manager/supplier/refs/rules/MUST-tool-identification.md +174 -0
  95. package/templates/agents/manager/supplier/refs/rules/SHOULD-ecomode.md +145 -0
  96. package/templates/agents/manager/supplier/refs/rules/SHOULD-error-handling.md +102 -0
  97. package/templates/agents/manager/supplier/refs/rules/SHOULD-hud-statusline.md +96 -0
  98. package/templates/agents/manager/supplier/refs/rules/SHOULD-interaction.md +103 -0
  99. package/templates/agents/manager/supplier/refs/rules/SHOULD-memory-integration.md +114 -0
  100. package/templates/agents/manager/supplier/refs/rules/SHOULD-pipeline-mode.md +165 -0
  101. package/templates/agents/manager/supplier/refs/rules/index.yaml +125 -0
  102. package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/SKILL.md +269 -0
  103. package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/index.yaml +25 -0
  104. package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/SKILL.md +337 -0
  105. package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/index.yaml +26 -0
  106. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/SKILL.md +356 -0
  107. package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/index.yaml +27 -0
  108. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/SKILL.md +202 -0
  109. package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/index.yaml +25 -0
  110. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/SKILL.md +255 -0
  111. package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/index.yaml +27 -0
  112. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/SKILL.md +221 -0
  113. package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/index.yaml +25 -0
  114. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/SKILL.md +100 -0
  115. package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/index.yaml +39 -0
  116. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/SKILL.md +266 -0
  117. package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/index.yaml +26 -0
  118. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/SKILL.md +320 -0
  119. package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/index.yaml +28 -0
  120. package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/SKILL.md +73 -0
  121. package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/index.yaml +30 -0
  122. package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/SKILL.md +117 -0
  123. package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/index.yaml +34 -0
  124. package/templates/agents/manager/supplier/refs/skills/index.yaml +129 -0
  125. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/SKILL.md +279 -0
  126. package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/index.yaml +27 -0
  127. package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/SKILL.md +274 -0
  128. package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/index.yaml +26 -0
  129. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/SKILL.md +214 -0
  130. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/index.yaml +30 -0
  131. package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +342 -0
  132. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/SKILL.md +188 -0
  133. package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/index.yaml +27 -0
  134. package/templates/agents/manager/supplier/refs/skills/system/memory-management/SKILL.md +194 -0
  135. package/templates/agents/manager/supplier/refs/skills/system/memory-management/index.yaml +30 -0
  136. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/SKILL.md +163 -0
  137. package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/index.yaml +36 -0
  138. package/templates/agents/manager/updater/refs/rules/MAY-optimization.md +93 -0
  139. package/templates/agents/manager/updater/refs/rules/MUST-agent-design.md +107 -0
  140. package/templates/agents/manager/updater/refs/rules/MUST-agent-identification.md +108 -0
  141. package/templates/agents/manager/updater/refs/rules/MUST-continuous-improvement.md +132 -0
  142. package/templates/agents/manager/updater/refs/rules/MUST-intent-transparency.md +199 -0
  143. package/templates/agents/manager/updater/refs/rules/MUST-language-policy.md +62 -0
  144. package/templates/agents/manager/updater/refs/rules/MUST-orchestrator-coordination.md +334 -0
  145. package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +398 -0
  146. package/templates/agents/manager/updater/refs/rules/MUST-permissions.md +84 -0
  147. package/templates/agents/manager/updater/refs/rules/MUST-safety.md +69 -0
  148. package/templates/agents/manager/updater/refs/rules/MUST-sync-verification.md +219 -0
  149. package/templates/agents/manager/updater/refs/rules/MUST-tool-identification.md +174 -0
  150. package/templates/agents/manager/updater/refs/rules/SHOULD-ecomode.md +145 -0
  151. package/templates/agents/manager/updater/refs/rules/SHOULD-error-handling.md +102 -0
  152. package/templates/agents/manager/updater/refs/rules/SHOULD-hud-statusline.md +96 -0
  153. package/templates/agents/manager/updater/refs/rules/SHOULD-interaction.md +103 -0
  154. package/templates/agents/manager/updater/refs/rules/SHOULD-memory-integration.md +114 -0
  155. package/templates/agents/manager/updater/refs/rules/SHOULD-pipeline-mode.md +165 -0
  156. package/templates/agents/manager/updater/refs/rules/index.yaml +125 -0
  157. package/templates/agents/orchestrator/dev-lead/AGENT.md +47 -0
  158. package/templates/agents/orchestrator/secretary/AGENT.md +49 -0
  159. package/templates/agents/orchestrator/secretary/refs/rules/MAY-optimization.md +93 -0
  160. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-design.md +107 -0
  161. package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-identification.md +108 -0
  162. package/templates/agents/orchestrator/secretary/refs/rules/MUST-continuous-improvement.md +132 -0
  163. package/templates/agents/orchestrator/secretary/refs/rules/MUST-intent-transparency.md +199 -0
  164. package/templates/agents/orchestrator/secretary/refs/rules/MUST-language-policy.md +62 -0
  165. package/templates/agents/orchestrator/secretary/refs/rules/MUST-orchestrator-coordination.md +334 -0
  166. package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +398 -0
  167. package/templates/agents/orchestrator/secretary/refs/rules/MUST-permissions.md +84 -0
  168. package/templates/agents/orchestrator/secretary/refs/rules/MUST-safety.md +69 -0
  169. package/templates/agents/orchestrator/secretary/refs/rules/MUST-sync-verification.md +219 -0
  170. package/templates/agents/orchestrator/secretary/refs/rules/MUST-tool-identification.md +174 -0
  171. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-ecomode.md +145 -0
  172. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-error-handling.md +102 -0
  173. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-hud-statusline.md +96 -0
  174. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-interaction.md +103 -0
  175. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-memory-integration.md +114 -0
  176. package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-pipeline-mode.md +165 -0
  177. package/templates/agents/orchestrator/secretary/refs/rules/index.yaml +125 -0
  178. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/best-practices.md +232 -0
  179. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/index.yaml +21 -0
  180. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md +269 -0
  181. package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml +25 -0
  182. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/index.yaml +26 -0
  183. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/project-layout.md +243 -0
  184. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/uber-style.md +212 -0
  185. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/SKILL.md +337 -0
  186. package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/index.yaml +26 -0
  187. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/best-practices.md +361 -0
  188. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/index.yaml +22 -0
  189. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/SKILL.md +356 -0
  190. package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/index.yaml +27 -0
  191. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/SKILL.md +100 -0
  192. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml +39 -0
  193. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/SKILL.md +73 -0
  194. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/index.yaml +30 -0
  195. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/accessibility.md +66 -0
  196. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/index.yaml +20 -0
  197. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/performance.md +102 -0
  198. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/SKILL.md +117 -0
  199. package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/index.yaml +34 -0
  200. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/SKILL.md +202 -0
  201. package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/index.yaml +25 -0
  202. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/concurrency.md +282 -0
  203. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/effective-go.md +309 -0
  204. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/error-handling.md +250 -0
  205. package/templates/agents/sw-engineer/language/golang-expert/refs/golang/index.yaml +27 -0
  206. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/coding-conventions.md +247 -0
  207. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/idioms.md +234 -0
  208. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/index.yaml +26 -0
  209. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/SKILL.md +255 -0
  210. package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/index.yaml +27 -0
  211. package/templates/agents/sw-engineer/language/python-expert/refs/python/index.yaml +26 -0
  212. package/templates/agents/sw-engineer/language/python-expert/refs/python/pep8-style-guide.md +202 -0
  213. package/templates/agents/sw-engineer/language/python-expert/refs/python/zen-of-python.md +79 -0
  214. package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/SKILL.md +221 -0
  215. package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml +25 -0
  216. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/error-handling.md +262 -0
  217. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/index.yaml +26 -0
  218. package/templates/agents/sw-engineer/language/rust-expert/refs/rust/ownership.md +180 -0
  219. package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/SKILL.md +266 -0
  220. package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/index.yaml +26 -0
  221. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/advanced-types.md +225 -0
  222. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/index.yaml +26 -0
  223. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/type-system.md +219 -0
  224. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/SKILL.md +320 -0
  225. package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/index.yaml +28 -0
  226. package/templates/agents/tutor/go-tutor/AGENT.md +130 -0
  227. package/templates/agents/tutor/go-tutor/index.yaml +48 -0
  228. package/templates/examples/code-review.yaml +66 -0
  229. package/templates/guides/claude-code/11-sub-agents.md +159 -0
  230. package/templates/index.yaml +18 -0
  231. package/templates/manifest.json +55 -0
  232. package/templates/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +9 -0
  233. package/templates/templates/pipeline-template.yaml +50 -0
@@ -0,0 +1,26 @@
1
+ # Rust Best Practices Skill
2
+
3
+ metadata:
4
+ name: rust-best-practices
5
+ category: development
6
+ description: Idiomatic Rust patterns from official guidelines
7
+
8
+ source:
9
+ type: internal
10
+ reference:
11
+ - https://doc.rust-lang.org/book/
12
+ - https://rust-lang.github.io/api-guidelines/
13
+ - https://doc.rust-lang.org/nightly/style-guide/
14
+
15
+ provides:
16
+ - Rust naming conventions
17
+ - Ownership and borrowing patterns
18
+ - Error handling patterns
19
+ - Trait and generic design
20
+ - Memory management guidelines
21
+ - Concurrency patterns
22
+ - API design guidelines
23
+ - Documentation standards
24
+
25
+ used_by:
26
+ - rust-expert
@@ -0,0 +1,225 @@
1
+ # TypeScript Advanced Types
2
+
3
+ > Reference for advanced TypeScript type patterns
4
+
5
+ ## Utility Types
6
+
7
+ ```typescript
8
+ // Partial - make all properties optional
9
+ type PartialUser = Partial<User>;
10
+
11
+ // Required - make all properties required
12
+ type RequiredUser = Required<User>;
13
+
14
+ // Readonly - make all properties readonly
15
+ type ReadonlyUser = Readonly<User>;
16
+
17
+ // Pick - select specific properties
18
+ type UserName = Pick<User, 'name' | 'email'>;
19
+
20
+ // Omit - exclude specific properties
21
+ type UserWithoutId = Omit<User, 'id'>;
22
+
23
+ // Record - create object type with key-value pairs
24
+ type UserMap = Record<string, User>;
25
+
26
+ // Exclude - exclude types from union
27
+ type NonNullStatus = Exclude<Status | null, null>;
28
+
29
+ // Extract - extract types from union
30
+ type StringStatus = Extract<Status, string>;
31
+
32
+ // NonNullable - remove null and undefined
33
+ type DefinedValue = NonNullable<string | null | undefined>;
34
+
35
+ // ReturnType - get function return type
36
+ type Result = ReturnType<typeof fetchUser>;
37
+
38
+ // Parameters - get function parameter types
39
+ type Params = Parameters<typeof fetchUser>;
40
+ ```
41
+
42
+ ## Mapped Types
43
+
44
+ ```typescript
45
+ // Make all properties optional
46
+ type Optional<T> = {
47
+ [P in keyof T]?: T[P];
48
+ };
49
+
50
+ // Make all properties readonly
51
+ type Immutable<T> = {
52
+ readonly [P in keyof T]: T[P];
53
+ };
54
+
55
+ // Make all properties nullable
56
+ type Nullable<T> = {
57
+ [P in keyof T]: T[P] | null;
58
+ };
59
+
60
+ // Remap keys
61
+ type Getters<T> = {
62
+ [P in keyof T as `get${Capitalize<string & P>}`]: () => T[P];
63
+ };
64
+
65
+ // Filter properties by type
66
+ type OnlyStrings<T> = {
67
+ [P in keyof T as T[P] extends string ? P : never]: T[P];
68
+ };
69
+ ```
70
+
71
+ ## Conditional Types
72
+
73
+ ```typescript
74
+ // Basic conditional
75
+ type IsString<T> = T extends string ? true : false;
76
+
77
+ // With infer
78
+ type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
79
+
80
+ // Array element type
81
+ type ElementType<T> = T extends (infer E)[] ? E : never;
82
+
83
+ // Function return type
84
+ type GetReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
85
+
86
+ // Distributive conditional
87
+ type ToArray<T> = T extends any ? T[] : never;
88
+ // ToArray<string | number> = string[] | number[]
89
+ ```
90
+
91
+ ## Template Literal Types
92
+
93
+ ```typescript
94
+ // Simple template
95
+ type Greeting = `Hello, ${string}!`;
96
+
97
+ // With union
98
+ type EventHandler = `on${Capitalize<'click' | 'hover' | 'focus'>}`;
99
+ // 'onClick' | 'onHover' | 'onFocus'
100
+
101
+ // Extract from string
102
+ type ExtractRouteParams<T extends string> =
103
+ T extends `${string}:${infer Param}/${infer Rest}`
104
+ ? Param | ExtractRouteParams<Rest>
105
+ : T extends `${string}:${infer Param}`
106
+ ? Param
107
+ : never;
108
+
109
+ // ExtractRouteParams<'/users/:id/posts/:postId'>
110
+ // = 'id' | 'postId'
111
+ ```
112
+
113
+ ## Discriminated Unions
114
+
115
+ ```typescript
116
+ interface Circle {
117
+ kind: 'circle';
118
+ radius: number;
119
+ }
120
+
121
+ interface Square {
122
+ kind: 'square';
123
+ side: number;
124
+ }
125
+
126
+ interface Rectangle {
127
+ kind: 'rectangle';
128
+ width: number;
129
+ height: number;
130
+ }
131
+
132
+ type Shape = Circle | Square | Rectangle;
133
+
134
+ function getArea(shape: Shape): number {
135
+ switch (shape.kind) {
136
+ case 'circle':
137
+ return Math.PI * shape.radius ** 2;
138
+ case 'square':
139
+ return shape.side ** 2;
140
+ case 'rectangle':
141
+ return shape.width * shape.height;
142
+ }
143
+ }
144
+ ```
145
+
146
+ ## Index Signatures
147
+
148
+ ```typescript
149
+ // String index
150
+ interface Dictionary {
151
+ [key: string]: string;
152
+ }
153
+
154
+ // Number index
155
+ interface NumberMap {
156
+ [index: number]: string;
157
+ }
158
+
159
+ // With specific properties
160
+ interface User {
161
+ id: string;
162
+ name: string;
163
+ [key: string]: string; // additional properties
164
+ }
165
+
166
+ // Template literal index
167
+ type Handlers = {
168
+ [K in `on${Capitalize<string>}`]: (event: Event) => void;
169
+ };
170
+ ```
171
+
172
+ ## Type Narrowing
173
+
174
+ ```typescript
175
+ // Control flow analysis
176
+ function process(value: string | number | null) {
177
+ if (value === null) {
178
+ return; // value is null
179
+ }
180
+
181
+ if (typeof value === 'string') {
182
+ console.log(value.toUpperCase()); // value is string
183
+ } else {
184
+ console.log(value.toFixed(2)); // value is number
185
+ }
186
+ }
187
+
188
+ // Assertion functions
189
+ function assertIsString(value: unknown): asserts value is string {
190
+ if (typeof value !== 'string') {
191
+ throw new Error('Not a string');
192
+ }
193
+ }
194
+
195
+ // Type predicates
196
+ function isNonNull<T>(value: T): value is NonNullable<T> {
197
+ return value !== null && value !== undefined;
198
+ }
199
+
200
+ const filtered = items.filter(isNonNull);
201
+ ```
202
+
203
+ ## Brand Types
204
+
205
+ ```typescript
206
+ // Create distinct types for same underlying type
207
+ type UserId = string & { readonly brand: unique symbol };
208
+ type PostId = string & { readonly brand: unique symbol };
209
+
210
+ function createUserId(id: string): UserId {
211
+ return id as UserId;
212
+ }
213
+
214
+ function createPostId(id: string): PostId {
215
+ return id as PostId;
216
+ }
217
+
218
+ function getUser(id: UserId): User { ... }
219
+
220
+ const userId = createUserId('123');
221
+ const postId = createPostId('456');
222
+
223
+ getUser(userId); // OK
224
+ getUser(postId); // Error: PostId not assignable to UserId
225
+ ```
@@ -0,0 +1,26 @@
1
+ # TypeScript Guide
2
+
3
+ metadata:
4
+ name: typescript
5
+ description: TypeScript language reference documentation
6
+
7
+ source:
8
+ type: external
9
+ origin: typescriptlang.org
10
+ urls:
11
+ - https://www.typescriptlang.org/docs/handbook/
12
+ - https://google.github.io/styleguide/tsguide.html
13
+ - https://basarat.gitbook.io/typescript/
14
+ last_fetched: "2026-01-22"
15
+
16
+ documents:
17
+ - name: type-system
18
+ path: ./type-system.md
19
+ description: TypeScript type system fundamentals
20
+
21
+ - name: advanced-types
22
+ path: ./advanced-types.md
23
+ description: Advanced TypeScript type patterns
24
+
25
+ used_by:
26
+ - typescript-expert
@@ -0,0 +1,219 @@
1
+ # TypeScript Type System
2
+
3
+ > Reference for TypeScript type fundamentals
4
+
5
+ ## Basic Types
6
+
7
+ ```typescript
8
+ // Primitives
9
+ const name: string = 'TypeScript';
10
+ const version: number = 5.0;
11
+ const isActive: boolean = true;
12
+
13
+ // Arrays
14
+ const numbers: number[] = [1, 2, 3];
15
+ const items: Array<string> = ['a', 'b', 'c'];
16
+
17
+ // Tuples
18
+ const pair: [string, number] = ['key', 42];
19
+
20
+ // Enums
21
+ enum Status {
22
+ Pending = 'pending',
23
+ Active = 'active',
24
+ Completed = 'completed',
25
+ }
26
+
27
+ // Any and Unknown
28
+ const flexible: any = 'anything';
29
+ const safe: unknown = 'must narrow';
30
+
31
+ // Void and Never
32
+ function log(message: string): void {
33
+ console.log(message);
34
+ }
35
+
36
+ function fail(message: string): never {
37
+ throw new Error(message);
38
+ }
39
+ ```
40
+
41
+ ## Interfaces
42
+
43
+ ```typescript
44
+ interface User {
45
+ readonly id: string;
46
+ name: string;
47
+ email: string;
48
+ age?: number; // optional
49
+ }
50
+
51
+ // Extending interfaces
52
+ interface Admin extends User {
53
+ permissions: string[];
54
+ }
55
+
56
+ // Implementing interfaces
57
+ class UserImpl implements User {
58
+ readonly id: string;
59
+ name: string;
60
+ email: string;
61
+
62
+ constructor(id: string, name: string, email: string) {
63
+ this.id = id;
64
+ this.name = name;
65
+ this.email = email;
66
+ }
67
+ }
68
+ ```
69
+
70
+ ## Type Aliases
71
+
72
+ ```typescript
73
+ // Union types
74
+ type Status = 'pending' | 'active' | 'completed';
75
+
76
+ // Intersection types
77
+ type Employee = User & { department: string };
78
+
79
+ // Function types
80
+ type Handler = (event: Event) => void;
81
+
82
+ // Object types
83
+ type Point = {
84
+ x: number;
85
+ y: number;
86
+ };
87
+ ```
88
+
89
+ ## Generics
90
+
91
+ ```typescript
92
+ // Generic function
93
+ function identity<T>(arg: T): T {
94
+ return arg;
95
+ }
96
+
97
+ // Generic interface
98
+ interface Container<T> {
99
+ value: T;
100
+ getValue(): T;
101
+ }
102
+
103
+ // Generic class
104
+ class Box<T> {
105
+ private content: T;
106
+
107
+ constructor(content: T) {
108
+ this.content = content;
109
+ }
110
+
111
+ getContent(): T {
112
+ return this.content;
113
+ }
114
+ }
115
+
116
+ // Generic constraints
117
+ function getLength<T extends { length: number }>(item: T): number {
118
+ return item.length;
119
+ }
120
+
121
+ // Default type parameters
122
+ function createArray<T = string>(length: number, value: T): T[] {
123
+ return Array(length).fill(value);
124
+ }
125
+ ```
126
+
127
+ ## Type Guards
128
+
129
+ ```typescript
130
+ // typeof guard
131
+ function processValue(value: string | number) {
132
+ if (typeof value === 'string') {
133
+ console.log(value.toUpperCase());
134
+ } else {
135
+ console.log(value.toFixed(2));
136
+ }
137
+ }
138
+
139
+ // instanceof guard
140
+ function handleError(error: unknown) {
141
+ if (error instanceof Error) {
142
+ console.log(error.message);
143
+ }
144
+ }
145
+
146
+ // Custom type guard
147
+ function isUser(obj: unknown): obj is User {
148
+ return (
149
+ typeof obj === 'object' &&
150
+ obj !== null &&
151
+ 'id' in obj &&
152
+ 'name' in obj
153
+ );
154
+ }
155
+
156
+ // in operator
157
+ function processShape(shape: Circle | Square) {
158
+ if ('radius' in shape) {
159
+ console.log('Circle with radius:', shape.radius);
160
+ } else {
161
+ console.log('Square with side:', shape.side);
162
+ }
163
+ }
164
+ ```
165
+
166
+ ## Literal Types
167
+
168
+ ```typescript
169
+ // String literals
170
+ type Direction = 'north' | 'south' | 'east' | 'west';
171
+
172
+ // Numeric literals
173
+ type DiceRoll = 1 | 2 | 3 | 4 | 5 | 6;
174
+
175
+ // Boolean literal
176
+ type Success = true;
177
+
178
+ // Template literal types
179
+ type EventName = `on${Capitalize<string>}`;
180
+ type OnClick = `on${'Click' | 'Hover'}`;
181
+ ```
182
+
183
+ ## Type Assertions
184
+
185
+ ```typescript
186
+ // as syntax (preferred)
187
+ const input = document.getElementById('input') as HTMLInputElement;
188
+
189
+ // Angle bracket syntax
190
+ const input2 = <HTMLInputElement>document.getElementById('input');
191
+
192
+ // Non-null assertion
193
+ const element = document.getElementById('root')!;
194
+
195
+ // const assertion
196
+ const config = {
197
+ endpoint: '/api',
198
+ timeout: 5000,
199
+ } as const;
200
+ ```
201
+
202
+ ## Nullability
203
+
204
+ ```typescript
205
+ // Optional property
206
+ interface User {
207
+ name: string;
208
+ email?: string;
209
+ }
210
+
211
+ // Optional chaining
212
+ const email = user?.email?.toLowerCase();
213
+
214
+ // Nullish coalescing
215
+ const displayName = user.nickname ?? user.name;
216
+
217
+ // Non-null assertion
218
+ const element = document.getElementById('root')!;
219
+ ```