@codemieai/code 0.1.0 → 0.2.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 (316) hide show
  1. package/README.md +13 -0
  2. package/bin/codebase-memory-ui-daemon.js +10 -0
  3. package/bin/codemie-codex.js +18 -0
  4. package/dist/agents/core/AgentCLI.d.ts +1 -0
  5. package/dist/agents/core/AgentCLI.d.ts.map +1 -1
  6. package/dist/agents/core/AgentCLI.js +29 -4
  7. package/dist/agents/core/AgentCLI.js.map +1 -1
  8. package/dist/agents/core/session/sync-state-utils.d.ts +11 -0
  9. package/dist/agents/core/session/sync-state-utils.d.ts.map +1 -0
  10. package/dist/agents/core/session/sync-state-utils.js +99 -0
  11. package/dist/agents/core/session/sync-state-utils.js.map +1 -0
  12. package/dist/agents/core/session/types.d.ts +8 -0
  13. package/dist/agents/core/session/types.d.ts.map +1 -1
  14. package/dist/agents/core/session/utils/jsonl-reader.d.ts +8 -0
  15. package/dist/agents/core/session/utils/jsonl-reader.d.ts.map +1 -1
  16. package/dist/agents/core/session/utils/jsonl-reader.js +37 -0
  17. package/dist/agents/core/session/utils/jsonl-reader.js.map +1 -1
  18. package/dist/agents/plugins/claude/claude.plugin.js +1 -1
  19. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  20. package/dist/agents/plugins/claude/plugin/hooks/hooks.json +0 -15
  21. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  22. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +2 -0
  23. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  24. package/dist/agents/plugins/codex/codex-message-types.d.ts +80 -0
  25. package/dist/agents/plugins/codex/codex-message-types.d.ts.map +1 -0
  26. package/dist/agents/plugins/codex/codex-message-types.js +36 -0
  27. package/dist/agents/plugins/codex/codex-message-types.js.map +1 -0
  28. package/dist/agents/plugins/codex/codex-models.d.ts +9 -0
  29. package/dist/agents/plugins/codex/codex-models.d.ts.map +1 -0
  30. package/dist/agents/plugins/codex/codex-models.js +227 -0
  31. package/dist/agents/plugins/codex/codex-models.js.map +1 -0
  32. package/dist/agents/plugins/codex/codex.incremental-sync.d.ts +39 -0
  33. package/dist/agents/plugins/codex/codex.incremental-sync.d.ts.map +1 -0
  34. package/dist/agents/plugins/codex/codex.incremental-sync.js +147 -0
  35. package/dist/agents/plugins/codex/codex.incremental-sync.js.map +1 -0
  36. package/dist/agents/plugins/codex/codex.paths.d.ts +29 -0
  37. package/dist/agents/plugins/codex/codex.paths.d.ts.map +1 -0
  38. package/dist/agents/plugins/codex/codex.paths.js +43 -0
  39. package/dist/agents/plugins/codex/codex.paths.js.map +1 -0
  40. package/dist/agents/plugins/codex/codex.plugin.d.ts +80 -0
  41. package/dist/agents/plugins/codex/codex.plugin.d.ts.map +1 -0
  42. package/dist/agents/plugins/codex/codex.plugin.js +474 -0
  43. package/dist/agents/plugins/codex/codex.plugin.js.map +1 -0
  44. package/dist/agents/plugins/codex/codex.reconciliation.d.ts +43 -0
  45. package/dist/agents/plugins/codex/codex.reconciliation.d.ts.map +1 -0
  46. package/dist/agents/plugins/codex/codex.reconciliation.js +141 -0
  47. package/dist/agents/plugins/codex/codex.reconciliation.js.map +1 -0
  48. package/dist/agents/plugins/codex/codex.session.d.ts +58 -0
  49. package/dist/agents/plugins/codex/codex.session.d.ts.map +1 -0
  50. package/dist/agents/plugins/codex/codex.session.js +326 -0
  51. package/dist/agents/plugins/codex/codex.session.js.map +1 -0
  52. package/dist/agents/plugins/codex/codex.storage-utils.d.ts +15 -0
  53. package/dist/agents/plugins/codex/codex.storage-utils.d.ts.map +1 -0
  54. package/dist/agents/plugins/codex/codex.storage-utils.js +19 -0
  55. package/dist/agents/plugins/codex/codex.storage-utils.js.map +1 -0
  56. package/dist/agents/plugins/codex/index.d.ts +7 -0
  57. package/dist/agents/plugins/codex/index.d.ts.map +1 -0
  58. package/dist/agents/plugins/codex/index.js +9 -0
  59. package/dist/agents/plugins/codex/index.js.map +1 -0
  60. package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.d.ts +24 -0
  61. package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.d.ts.map +1 -0
  62. package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.js +613 -0
  63. package/dist/agents/plugins/codex/session/processors/codex.conversations-processor.js.map +1 -0
  64. package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.d.ts +21 -0
  65. package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.d.ts.map +1 -0
  66. package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.js +124 -0
  67. package/dist/agents/plugins/codex/session/processors/codex.metrics-processor.js.map +1 -0
  68. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.d.ts.map +1 -1
  69. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js +1 -0
  70. package/dist/agents/plugins/gemini/session/processors/gemini.conversations-processor.js.map +1 -1
  71. package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts.map +1 -1
  72. package/dist/agents/plugins/opencode/opencode.storage-utils.js +2 -29
  73. package/dist/agents/plugins/opencode/opencode.storage-utils.js.map +1 -1
  74. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts.map +1 -1
  75. package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js.map +1 -1
  76. package/dist/agents/registry.d.ts.map +1 -1
  77. package/dist/agents/registry.js +2 -0
  78. package/dist/agents/registry.js.map +1 -1
  79. package/dist/bin/codebase-memory-ui-daemon.d.ts +2 -0
  80. package/dist/bin/codebase-memory-ui-daemon.d.ts.map +1 -0
  81. package/dist/bin/codebase-memory-ui-daemon.js +141 -0
  82. package/dist/bin/codebase-memory-ui-daemon.js.map +1 -0
  83. package/dist/bin/proxy-daemon.js +4 -0
  84. package/dist/bin/proxy-daemon.js.map +1 -1
  85. package/dist/cli/commands/assistants/constants.js +2 -2
  86. package/dist/cli/commands/assistants/constants.js.map +1 -1
  87. package/dist/cli/commands/assistants/setup/configuration/constants.js +4 -4
  88. package/dist/cli/commands/assistants/setup/configuration/constants.js.map +1 -1
  89. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -1
  90. package/dist/cli/commands/assistants/setup/configuration/ui.js +10 -13
  91. package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -1
  92. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts +4 -0
  93. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.d.ts.map +1 -0
  94. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js +76 -0
  95. package/dist/cli/commands/assistants/setup/generators/codex-skill-generator.js.map +1 -0
  96. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts +4 -0
  97. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.d.ts.map +1 -0
  98. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js +68 -0
  99. package/dist/cli/commands/assistants/setup/generators/gemini-skill-generator.js.map +1 -0
  100. package/dist/cli/commands/assistants/setup/helpers.d.ts +3 -2
  101. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
  102. package/dist/cli/commands/assistants/setup/helpers.js +43 -8
  103. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
  104. package/dist/cli/commands/assistants/setup/index.d.ts +3 -1
  105. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
  106. package/dist/cli/commands/assistants/setup/index.js +15 -12
  107. package/dist/cli/commands/assistants/setup/index.js.map +1 -1
  108. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +2 -2
  109. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +2 -2
  110. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -1
  111. package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
  112. package/dist/cli/commands/assistants/setup/selection/ui.js +8 -13
  113. package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
  114. package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -1
  115. package/dist/cli/commands/assistants/setup/summary/index.js +14 -8
  116. package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -1
  117. package/dist/cli/commands/codebase/daemon-manager.d.ts +24 -0
  118. package/dist/cli/commands/codebase/daemon-manager.d.ts.map +1 -0
  119. package/dist/cli/commands/codebase/daemon-manager.js +112 -0
  120. package/dist/cli/commands/codebase/daemon-manager.js.map +1 -0
  121. package/dist/cli/commands/codebase/index.d.ts +3 -0
  122. package/dist/cli/commands/codebase/index.d.ts.map +1 -0
  123. package/dist/cli/commands/codebase/index.js +130 -0
  124. package/dist/cli/commands/codebase/index.js.map +1 -0
  125. package/dist/cli/commands/hook.d.ts.map +1 -1
  126. package/dist/cli/commands/hook.js +15 -2
  127. package/dist/cli/commands/hook.js.map +1 -1
  128. package/dist/cli/commands/install.js +2 -2
  129. package/dist/cli/commands/install.js.map +1 -1
  130. package/dist/cli/commands/profile/index.d.ts +14 -0
  131. package/dist/cli/commands/profile/index.d.ts.map +1 -1
  132. package/dist/cli/commands/profile/index.js +110 -27
  133. package/dist/cli/commands/profile/index.js.map +1 -1
  134. package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +1 -1
  135. package/dist/cli/commands/proxy/connectors/desktop.d.ts +4 -6
  136. package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
  137. package/dist/cli/commands/proxy/connectors/desktop.js +92 -15
  138. package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
  139. package/dist/cli/commands/proxy/daemon-manager.d.ts +1 -0
  140. package/dist/cli/commands/proxy/daemon-manager.d.ts.map +1 -1
  141. package/dist/cli/commands/proxy/daemon-manager.js +2 -0
  142. package/dist/cli/commands/proxy/daemon-manager.js.map +1 -1
  143. package/dist/cli/commands/proxy/index.d.ts.map +1 -1
  144. package/dist/cli/commands/proxy/index.js +42 -0
  145. package/dist/cli/commands/proxy/index.js.map +1 -1
  146. package/dist/cli/commands/setup.js +1 -1
  147. package/dist/cli/commands/setup.js.map +1 -1
  148. package/dist/cli/commands/shared/agent-targets.d.ts +10 -0
  149. package/dist/cli/commands/shared/agent-targets.d.ts.map +1 -0
  150. package/dist/cli/commands/shared/agent-targets.js +220 -0
  151. package/dist/cli/commands/shared/agent-targets.js.map +1 -0
  152. package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -1
  153. package/dist/cli/commands/shared/prompts/storage-scope.js +9 -2
  154. package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -1
  155. package/dist/cli/commands/shared/selection/ui.d.ts +22 -0
  156. package/dist/cli/commands/shared/selection/ui.d.ts.map +1 -1
  157. package/dist/cli/commands/shared/selection/ui.js +34 -0
  158. package/dist/cli/commands/shared/selection/ui.js.map +1 -1
  159. package/dist/cli/commands/skills/lib/skills-metrics.d.ts.map +1 -1
  160. package/dist/cli/commands/skills/lib/skills-metrics.js +47 -11
  161. package/dist/cli/commands/skills/lib/skills-metrics.js.map +1 -1
  162. package/dist/cli/commands/skills/setup/generators/codex-skill-generator.d.ts +4 -0
  163. package/dist/cli/commands/skills/setup/generators/codex-skill-generator.d.ts.map +1 -0
  164. package/dist/cli/commands/skills/setup/generators/codex-skill-generator.js +51 -0
  165. package/dist/cli/commands/skills/setup/generators/codex-skill-generator.js.map +1 -0
  166. package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.d.ts +4 -0
  167. package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.d.ts.map +1 -0
  168. package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.js +51 -0
  169. package/dist/cli/commands/skills/setup/generators/gemini-skill-generator.js.map +1 -0
  170. package/dist/cli/commands/skills/setup/helpers.d.ts +3 -2
  171. package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -1
  172. package/dist/cli/commands/skills/setup/helpers.js +31 -6
  173. package/dist/cli/commands/skills/setup/helpers.js.map +1 -1
  174. package/dist/cli/commands/skills/setup/index.d.ts +2 -1
  175. package/dist/cli/commands/skills/setup/index.d.ts.map +1 -1
  176. package/dist/cli/commands/skills/setup/index.js +14 -11
  177. package/dist/cli/commands/skills/setup/index.js.map +1 -1
  178. package/dist/cli/commands/skills/setup/selection/ui.d.ts.map +1 -1
  179. package/dist/cli/commands/skills/setup/selection/ui.js +8 -13
  180. package/dist/cli/commands/skills/setup/selection/ui.js.map +1 -1
  181. package/dist/cli/commands/test-metrics.js +3 -4
  182. package/dist/cli/commands/test-metrics.js.map +1 -1
  183. package/dist/cli/index.js +3 -0
  184. package/dist/cli/index.js.map +1 -1
  185. package/dist/env/types.d.ts +2 -0
  186. package/dist/env/types.d.ts.map +1 -1
  187. package/dist/env/types.js.map +1 -1
  188. package/dist/frameworks/plugins/bmad.plugin.d.ts +10 -1
  189. package/dist/frameworks/plugins/bmad.plugin.d.ts.map +1 -1
  190. package/dist/frameworks/plugins/bmad.plugin.js +108 -9
  191. package/dist/frameworks/plugins/bmad.plugin.js.map +1 -1
  192. package/dist/frameworks/plugins/codebase-memory.plugin.d.ts +18 -0
  193. package/dist/frameworks/plugins/codebase-memory.plugin.d.ts.map +1 -0
  194. package/dist/frameworks/plugins/codebase-memory.plugin.js +131 -0
  195. package/dist/frameworks/plugins/codebase-memory.plugin.js.map +1 -0
  196. package/dist/frameworks/plugins/index.d.ts +1 -0
  197. package/dist/frameworks/plugins/index.d.ts.map +1 -1
  198. package/dist/frameworks/plugins/index.js +3 -0
  199. package/dist/frameworks/plugins/index.js.map +1 -1
  200. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +1 -1
  201. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +4 -4
  202. package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -1
  203. package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts +20 -0
  204. package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.d.ts.map +1 -0
  205. package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js +104 -0
  206. package/dist/providers/plugins/sso/proxy/plugins/codex-encrypted-content-sanitizer.plugin.js.map +1 -0
  207. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.d.ts.map +1 -1
  208. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js +24 -3
  209. package/dist/providers/plugins/sso/proxy/plugins/gateway-key.plugin.js.map +1 -1
  210. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js +5 -0
  211. package/dist/providers/plugins/sso/proxy/plugins/header-injection.plugin.js.map +1 -1
  212. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +3 -1
  213. package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
  214. package/dist/providers/plugins/sso/proxy/plugins/index.js +5 -1
  215. package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
  216. package/dist/providers/plugins/sso/proxy/plugins/logging.plugin.js +10 -3
  217. package/dist/providers/plugins/sso/proxy/plugins/logging.plugin.js.map +1 -1
  218. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.d.ts.map +1 -1
  219. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js +26 -8
  220. package/dist/providers/plugins/sso/proxy/plugins/sso.session-sync.plugin.js.map +1 -1
  221. package/dist/providers/plugins/sso/proxy/sso.proxy.d.ts.map +1 -1
  222. package/dist/providers/plugins/sso/proxy/sso.proxy.js +21 -4
  223. package/dist/providers/plugins/sso/proxy/sso.proxy.js.map +1 -1
  224. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
  225. package/dist/providers/plugins/sso/session/SessionSyncer.js +5 -72
  226. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
  227. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts +1 -1
  228. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.d.ts.map +1 -1
  229. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js +95 -4
  230. package/dist/providers/plugins/sso/session/processors/conversations/apiClient.js.map +1 -1
  231. package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts +2 -2
  232. package/dist/providers/plugins/sso/session/processors/conversations/constants.d.ts.map +1 -1
  233. package/dist/providers/plugins/sso/session/processors/conversations/constants.js +2 -2
  234. package/dist/providers/plugins/sso/session/processors/conversations/constants.js.map +1 -1
  235. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.d.ts.map +1 -1
  236. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.js +85 -21
  237. package/dist/providers/plugins/sso/session/processors/conversations/syncProcessor.js.map +1 -1
  238. package/dist/providers/plugins/sso/session/processors/conversations/types.d.ts +10 -2
  239. package/dist/providers/plugins/sso/session/processors/conversations/types.d.ts.map +1 -1
  240. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts +1 -1
  241. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.d.ts.map +1 -1
  242. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js +80 -46
  243. package/dist/providers/plugins/sso/session/processors/metrics/metrics-aggregator.js.map +1 -1
  244. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts +1 -9
  245. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.d.ts.map +1 -1
  246. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js +94 -30
  247. package/dist/providers/plugins/sso/session/processors/metrics/metrics-api-client.js.map +1 -1
  248. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts +4 -6
  249. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.d.ts.map +1 -1
  250. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js +24 -25
  251. package/dist/providers/plugins/sso/session/processors/metrics/metrics-post-processor.js.map +1 -1
  252. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
  253. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +140 -99
  254. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  255. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts +11 -3
  256. package/dist/providers/plugins/sso/session/processors/metrics/metrics-types.d.ts.map +1 -1
  257. package/dist/providers/plugins/sso/sso.auth.d.ts.map +1 -1
  258. package/dist/providers/plugins/sso/sso.auth.js +22 -4
  259. package/dist/providers/plugins/sso/sso.auth.js.map +1 -1
  260. package/dist/providers/plugins/sso/sso.setup-steps.js +2 -2
  261. package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
  262. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.d.ts.map +1 -1
  263. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js +4 -1
  264. package/dist/telemetry/clients/claude-desktop/claude-desktop.paths.js.map +1 -1
  265. package/dist/telemetry/runtime/DesktopTelemetryRuntime.d.ts.map +1 -1
  266. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js +1 -3
  267. package/dist/telemetry/runtime/DesktopTelemetryRuntime.js.map +1 -1
  268. package/dist/utils/browser.d.ts +7 -0
  269. package/dist/utils/browser.d.ts.map +1 -0
  270. package/dist/utils/browser.js +10 -0
  271. package/dist/utils/browser.js.map +1 -0
  272. package/dist/utils/config.d.ts.map +1 -1
  273. package/dist/utils/config.js +7 -1
  274. package/dist/utils/config.js.map +1 -1
  275. package/dist/utils/paths.d.ts +8 -0
  276. package/dist/utils/paths.d.ts.map +1 -1
  277. package/dist/utils/paths.js +15 -0
  278. package/dist/utils/paths.js.map +1 -1
  279. package/package.json +2 -1
  280. package/scripts/compare-codex-conversations.mjs +894 -0
  281. package/scripts/validate-secrets.js +7 -3
  282. package/dist/agents/plugins/claude/plugin/claude-templates/README.md +0 -539
  283. package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +0 -252
  284. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/code-review-agent-template.md.template +0 -433
  285. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/refactor-cleaner-agent.md.template +0 -337
  286. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/solution-architect-agent.md.template +0 -197
  287. package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/unit-tester-agent.md.template +0 -258
  288. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +0 -179
  289. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/architecture.md.template +0 -197
  290. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +0 -248
  291. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +0 -298
  292. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/integration/external-integrations.md.template +0 -160
  293. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +0 -295
  294. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +0 -186
  295. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/git-workflow.md.template +0 -177
  296. package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +0 -315
  297. package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +0 -522
  298. package/dist/agents/plugins/claude/plugin/commands/handoff.md +0 -56
  299. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +0 -549
  300. package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-baseline.sh +0 -39
  301. package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-rewrite.sh +0 -101
  302. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/SKILL.md +0 -206
  303. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-agent.md +0 -45
  304. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-claude-md-snippet.md +0 -40
  305. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-command.md +0 -30
  306. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-hooks.json +0 -23
  307. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/bad-skill.md +0 -48
  308. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-agent.md +0 -145
  309. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-claude-md-snippet.md +0 -126
  310. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-command.md +0 -170
  311. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-hooks.json +0 -46
  312. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/good-skill.md +0 -144
  313. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/examples/sample-report.md +0 -223
  314. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/best-practices.md +0 -510
  315. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/references/component-checklists.md +0 -413
  316. package/dist/agents/plugins/claude/plugin/skills/claude-setup-audit/scripts/scan-repo.sh +0 -162
@@ -1,248 +0,0 @@
1
- ---
2
- # Database Patterns
3
-
4
- <!--
5
- GENERATION INSTRUCTIONS:
6
- 1. Detect ORM/query builder/raw SQL approach
7
- 2. Scan models/entities for relationships
8
- 3. Extract actual query patterns from repositories/services
9
- 4. Find transaction usage examples
10
- 5. Locate migration files and commands
11
- 6. Output: 150-300 lines max
12
- -->
13
-
14
- **Project**: [Extract from config]
15
- **Database**: [Detect: PostgreSQL | MySQL | MongoDB | SQLite | etc.]
16
- **Data Access**: [Detect: ORM (name) | Query Builder | Raw SQL | Mixed]
17
- **Models Location**: `[Detect path]`
18
-
19
- ---
20
-
21
- ## Connection Setup
22
-
23
- <!-- Extract actual connection configuration -->
24
-
25
- ```[lang]
26
- // Source: [file:lines]
27
- [Extract connection/pool configuration]
28
- ```
29
-
30
- **Environment Variables**:
31
- | Variable | Purpose |
32
- |----------|---------|
33
- | `[DB_HOST/DATABASE_URL]` | [Connection string or host] |
34
- | `[DB_NAME]` | [Database name] |
35
- | `[DB_POOL_SIZE]` | [Pool size if configured] |
36
-
37
- ---
38
-
39
- ## Data Access Pattern
40
-
41
- <!-- Identify how this codebase accesses data -->
42
-
43
- **Pattern**: [Detect: Repository | Active Record | DAO | Direct ORM | Service Layer]
44
-
45
- ```[lang]
46
- // Source: [file:lines]
47
- [Extract canonical data access example - the PRIMARY pattern used]
48
- ```
49
-
50
- **To add new data access:**
51
- 1. Create in `[detected path]`
52
- 2. Follow pattern: `[detected naming convention]`
53
- 3. Inject/import via `[detected DI or import pattern]`
54
-
55
- ---
56
-
57
- ## Entity/Model Definition
58
-
59
- <!-- Extract representative model showing conventions -->
60
-
61
- ```[lang]
62
- // Source: [file:lines]
63
- [Extract one model with relationships, validations, typical fields]
64
- ```
65
-
66
- **Conventions:**
67
- | Aspect | Convention |
68
- |--------|------------|
69
- | Table naming | `[singular/plural, snake_case/PascalCase]` |
70
- | Primary key | `[id/uuid/_id pattern]` |
71
- | Timestamps | `[created_at/createdAt, updated_at/updatedAt]` |
72
- | Soft delete | `[deleted_at field or N/A]` |
73
-
74
- ---
75
-
76
- ## Relationships
77
-
78
- <!-- Scan models and document relationship patterns -->
79
-
80
- ```
81
- [EntityA] ──1:N──► [EntityB] ──N:M──► [EntityC]
82
-
83
- 1:1─┴─► [EntityD]
84
- ```
85
-
86
- | Relationship | Implementation | Source |
87
- |--------------|----------------|--------|
88
- | One-to-Many | `[syntax used]` | `[file:line]` |
89
- | Many-to-Many | `[syntax used]` | `[file:line]` |
90
- | One-to-One | `[syntax used]` | `[file:line]` |
91
-
92
- ---
93
-
94
- ## Query Patterns
95
-
96
- <!-- Extract actual query patterns used in codebase -->
97
-
98
- ### Basic Operations
99
-
100
- | Operation | Pattern | Source |
101
- |-----------|---------|--------|
102
- | Find by ID | `[extract syntax]` | `[file:line]` |
103
- | Find many | `[extract syntax]` | `[file:line]` |
104
- | Create | `[extract syntax]` | `[file:line]` |
105
- | Update | `[extract syntax]` | `[file:line]` |
106
- | Delete | `[extract syntax]` | `[file:line]` |
107
-
108
- ### Filtering & Search
109
-
110
- ```[lang]
111
- // Source: [file:lines]
112
- [Extract example with WHERE conditions, filtering]
113
- ```
114
-
115
- ### Pagination
116
-
117
- ```[lang]
118
- // Source: [file:lines]
119
- [Extract pagination implementation]
120
- ```
121
-
122
- **Type**: [Offset-based | Cursor-based | Keyset]
123
- **Params**: `[page/limit or cursor/take]`
124
-
125
- ### Complex Query Example
126
-
127
- ```[lang]
128
- // Source: [file:lines]
129
- [Extract query with joins, aggregations, or subqueries if exists]
130
- ```
131
-
132
- ---
133
-
134
- ## Transactions
135
-
136
- <!-- Find transaction usage in codebase -->
137
-
138
- ```[lang]
139
- // Source: [file:lines]
140
- [Extract transaction pattern]
141
- ```
142
-
143
- **Transaction boundaries managed at**: `[Service layer | Repository | Controller]`
144
-
145
- **Rules in this codebase:**
146
- - [Extract or infer transaction conventions]
147
- - [When transactions are used]
148
-
149
- ---
150
-
151
- ## Eager Loading / N+1 Prevention
152
-
153
- <!-- Find include/join/populate patterns -->
154
-
155
- ```[lang]
156
- // Source: [file:lines]
157
- [Extract eager loading example]
158
- ```
159
-
160
- **Syntax**: `[include/populate/joinedLoad/with - whatever ORM uses]`
161
-
162
- ---
163
-
164
- ## Migrations
165
-
166
- <!-- Extract exact commands from package.json, Makefile, or docs -->
167
-
168
- | Action | Command |
169
- |--------|---------|
170
- | Create migration | `[exact command]` |
171
- | Run pending | `[exact command]` |
172
- | Rollback last | `[exact command]` |
173
- | Check status | `[exact command]` |
174
-
175
- **Migrations location**: `[path]`
176
-
177
- **Naming convention**: `[timestamp_description | sequential | etc.]`
178
-
179
- ```[lang]
180
- // Source: [file:lines]
181
- [Extract example migration structure]
182
- ```
183
-
184
- ---
185
-
186
- ## Seeding / Fixtures
187
-
188
- <!-- Find seed data patterns if they exist -->
189
-
190
- | Action | Command |
191
- |--------|---------|
192
- | Run seeds | `[command or N/A]` |
193
- | Reset + seed | `[command or N/A]` |
194
-
195
- **Seeds location**: `[path or N/A]`
196
-
197
- ---
198
-
199
- ## Raw Queries
200
-
201
- <!-- Find if/how raw SQL is used -->
202
-
203
- **Used for**: [Complex reports | Bulk operations | Not used | etc.]
204
-
205
- ```[lang]
206
- // Source: [file:lines] - ALWAYS parameterized
207
- [Extract parameterized raw query example]
208
- ```
209
-
210
- ⚠️ **Never**: String interpolation → SQL injection risk
211
-
212
- ---
213
-
214
- ## Error Handling
215
-
216
- <!-- Find database error handling patterns -->
217
-
218
- | Error Type | Handling | Source |
219
- |------------|----------|--------|
220
- | Not found | `[throw/return pattern]` | `[file:line]` |
221
- | Duplicate key | `[catch/handle pattern]` | `[file:line]` |
222
- | Connection error | `[retry/fail pattern]` | `[file:line]` |
223
-
224
- ---
225
-
226
- ## Conventions Summary
227
-
228
- | ✅ DO | ❌ DON'T |
229
- |-------|----------|
230
- | Use `[detected data access pattern]` | Direct DB calls in `[wrong layer]` |
231
- | `[eager load syntax]` for relations | Lazy load in loops (N+1) |
232
- | Parameterized queries | String interpolation |
233
- | Transactions for multi-writes | Individual saves for related data |
234
- | `[soft delete if used]` | Hard delete `[if soft delete is convention]` |
235
-
236
- ---
237
-
238
- ## Quick Reference
239
-
240
- | Need | Location | Pattern |
241
- |------|----------|---------|
242
- | Models/Entities | `[path]` | `[naming]` |
243
- | Repositories/DAOs | `[path]` | `[naming]` |
244
- | Migrations | `[path]` | `[naming]` |
245
- | Seeds | `[path]` | `[naming]` |
246
- | DB Config | `[path]` | - |
247
-
248
- ---
@@ -1,298 +0,0 @@
1
- ---
2
- # Development Practices
3
-
4
- <!--
5
- GENERATION INSTRUCTIONS:
6
- 1. Scan for linter/formatter configs (.eslintrc, .prettierrc, pyproject.toml, etc.)
7
- 2. Extract naming patterns from existing code
8
- 3. Find error handling patterns in services/controllers
9
- 4. Locate logging usage and configuration
10
- 5. Check for pre-commit hooks, CI config
11
- 6. Output: 150-300 lines max
12
- -->
13
-
14
- **Project**: [Extract from config]
15
- **Language**: [Detect] | **Framework**: [Detect]
16
- **Linter**: [Detect] | **Formatter**: [Detect]
17
-
18
- ---
19
-
20
- ## Code Style
21
-
22
- <!-- Extract from linter config + analyze existing code patterns -->
23
-
24
- ### Naming Conventions
25
-
26
- | Element | Convention | Example |
27
- |---------|------------|---------|
28
- | Files | `[kebab-case/snake_case/PascalCase]` | `[actual example from codebase]` |
29
- | Classes | `[PascalCase]` | `[actual example]` |
30
- | Functions | `[camelCase/snake_case]` | `[actual example]` |
31
- | Variables | `[camelCase/snake_case]` | `[actual example]` |
32
- | Constants | `[UPPER_SNAKE_CASE]` | `[actual example]` |
33
- | Private | `[_prefix/no prefix/#private]` | `[actual example]` |
34
-
35
- ### File Organization
36
-
37
- ```[lang]
38
- // Source: [representative file path]
39
- // Standard file structure in this codebase:
40
-
41
- [Extract typical file structure showing imports, class/function order]
42
- ```
43
-
44
- ### Import Order
45
-
46
- <!-- Extract from linter config or consistent patterns -->
47
-
48
- ```[lang]
49
- // 1. [Standard library / Built-ins]
50
- // 2. [External packages / Third-party]
51
- // 3. [Internal modules / Local imports]
52
-
53
- [Extract example showing import organization]
54
- ```
55
-
56
- ---
57
-
58
- ## Code Quality
59
-
60
- <!-- Find linter/formatter configuration -->
61
-
62
- ### Commands
63
-
64
- | Action | Command | Auto-fix |
65
- |--------|---------|----------|
66
- | Lint | `[exact command]` | `[fix command]` |
67
- | Format | `[exact command]` | `[format write command]` |
68
- | Type check | `[command or N/A]` | - |
69
- | All checks | `[combined command if exists]` | - |
70
-
71
- ### Configuration Files
72
-
73
- | Tool | Config File |
74
- |------|-------------|
75
- | Linter | `[.eslintrc / .pylintrc / etc.]` |
76
- | Formatter | `[.prettierrc / pyproject.toml / etc.]` |
77
- | Type checker | `[tsconfig.json / mypy.ini / etc.]` |
78
-
79
- ### Pre-commit Hooks
80
-
81
- <!-- Check for .pre-commit-config.yaml, husky, lint-staged -->
82
-
83
- ```bash
84
- # Setup (if not auto-installed)
85
- [pre-commit install command or N/A]
86
- ```
87
-
88
- **Runs on commit**: [List what runs - lint, format, tests]
89
-
90
- ---
91
-
92
- ## Error Handling
93
-
94
- <!-- Extract exception classes and handling patterns -->
95
-
96
- ### Exception Types
97
-
98
- | Exception | Use When | Source |
99
- |-----------|----------|--------|
100
- | `[ValidationError]` | Invalid input data | `[file:line]` |
101
- | `[NotFoundError]` | Resource doesn't exist | `[file:line]` |
102
- | `[UnauthorizedError]` | Auth required/failed | `[file:line]` |
103
- | `[ForbiddenError]` | Permission denied | `[file:line]` |
104
- | `[ConflictError]` | State conflict | `[file:line]` |
105
-
106
- ### Pattern
107
-
108
- ```[lang]
109
- // Source: [file:lines]
110
- [Extract canonical error throwing/handling pattern]
111
- ```
112
-
113
- **Rules:**
114
- - Throw specific exceptions from `[exceptions path]`
115
- - Let `[error handler/middleware]` convert to response
116
- - ❌ Never catch-and-ignore silently
117
-
118
- ---
119
-
120
- ## Logging
121
-
122
- <!-- Find logging configuration and usage patterns -->
123
-
124
- ### Setup
125
-
126
- ```[lang]
127
- // Source: [file:lines]
128
- [Extract logger initialization/import pattern]
129
- ```
130
-
131
- ### Usage Pattern
132
-
133
- ```[lang]
134
- // Source: [file:lines]
135
- [Extract example showing structured logging with context]
136
- ```
137
-
138
- ### Levels
139
-
140
- | Level | Use For |
141
- |-------|---------|
142
- | `debug` | Development troubleshooting |
143
- | `info` | Significant operations (startup, requests) |
144
- | `warn` | Recoverable issues, deprecations |
145
- | `error` | Failures requiring attention |
146
-
147
- ### Rules
148
-
149
- - ✅ Include context: `{ userId, requestId, [relevant ids] }`
150
- - ✅ Use `[detected logger]` from `[import path]`
151
- - ❌ No secrets, passwords, tokens in logs
152
- - ❌ No excessive logging in loops/hot paths
153
-
154
- ---
155
-
156
- ## Async Patterns
157
-
158
- <!-- Detect if async/await, promises, or sync patterns used -->
159
-
160
- **Style**: [async/await | Promises | Callbacks | Sync | Mixed]
161
-
162
- ```[lang]
163
- // Source: [file:lines]
164
- [Extract canonical async pattern]
165
- ```
166
-
167
- ### Error Handling in Async
168
-
169
- ```[lang]
170
- // Source: [file:lines]
171
- [Extract async error handling - try/catch wrapper, error middleware, etc.]
172
- ```
173
-
174
- ---
175
-
176
- ## Configuration & Environment
177
-
178
- <!-- Find how config is loaded and validated -->
179
-
180
- ### Loading Pattern
181
-
182
- ```[lang]
183
- // Source: [file:lines]
184
- [Extract config loading/validation pattern]
185
- ```
186
-
187
- ### Required Variables
188
-
189
- | Variable | Purpose | Example |
190
- |----------|---------|---------|
191
- | `[VAR_NAME]` | [Purpose] | `[example value]` |
192
- | `[VAR_NAME]` | [Purpose] | `[example value]` |
193
-
194
- ### Accessing Config
195
-
196
- ```[lang]
197
- // Use this pattern to access configuration
198
- [Extract how to import/use config values]
199
- ```
200
-
201
- ---
202
-
203
- ## Dependencies
204
-
205
- <!-- Find package manager and conventions -->
206
-
207
- ### Adding Dependencies
208
-
209
- ```bash
210
- # Production dependency
211
- [npm install X / pip install X / etc.]
212
-
213
- # Dev dependency
214
- [npm install -D X / pip install X --dev / etc.]
215
- ```
216
-
217
- ### Update Process
218
-
219
- ```bash
220
- # Check outdated
221
- [command]
222
-
223
- # Update
224
- [command]
225
- ```
226
-
227
- **Lock file**: `[package-lock.json / poetry.lock / etc.]` - ✅ Always commit
228
-
229
- ---
230
-
231
- ## Git Workflow
232
-
233
- <!-- Extract from CONTRIBUTING.md, .github, or infer from history -->
234
-
235
- ### Branch Naming
236
-
237
- ```
238
- [feature/bugfix/hotfix]/[ticket-id]-[short-description]
239
- ```
240
-
241
- **Examples**: `feature/ABC-123-add-user-auth`, `bugfix/fix-login-redirect`
242
-
243
- ### Commit Messages
244
-
245
- <!-- Detect conventional commits, or extract pattern -->
246
-
247
- ```
248
- [type]([scope]): [description]
249
-
250
- [body - optional]
251
- ```
252
-
253
- **Types**: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`
254
-
255
- ### PR Checklist
256
-
257
- - [ ] Linting passes (`[lint command]`)
258
- - [ ] Tests pass (`[test command]`)
259
- - [ ] [Other checks from CI or CONTRIBUTING.md]
260
-
261
- ---
262
-
263
- ## Common Patterns
264
-
265
- <!-- Extract recurring patterns specific to this codebase -->
266
-
267
- | Pattern | When to Use | Example |
268
- |---------|-------------|---------|
269
- | `[Helper/Utility name]` | [Use case] | `[file:line]` |
270
- | `[Decorator/Middleware]` | [Use case] | `[file:line]` |
271
- | `[Factory/Builder]` | [Use case] | `[file:line]` |
272
-
273
- ---
274
-
275
- ## Don't Do
276
-
277
- <!-- Extract anti-patterns from linter rules or code review patterns -->
278
-
279
- | ❌ Avoid | ✅ Instead | Why |
280
- |----------|-----------|-----|
281
- | `[anti-pattern]` | `[correct pattern]` | [reason] |
282
- | `[anti-pattern]` | `[correct pattern]` | [reason] |
283
- | `[anti-pattern]` | `[correct pattern]` | [reason] |
284
-
285
- ---
286
-
287
- ## Quick Reference
288
-
289
- | Need | Location |
290
- |------|----------|
291
- | Linter config | `[path]` |
292
- | Formatter config | `[path]` |
293
- | Exception classes | `[path]` |
294
- | Logger setup | `[path]` |
295
- | Config loader | `[path]` |
296
- | Utilities | `[path]` |
297
-
298
- ---
@@ -1,160 +0,0 @@
1
- # External Integrations
2
-
3
- ## Quick Summary
4
-
5
- External service integration patterns for [PROJECT_NAME]: API clients, authentication, retries, and error handling.
6
-
7
- **Category**: Integration
8
- **Complexity**: Medium-High
9
- **Prerequisites**: HTTP clients, async/await, API fundamentals
10
-
11
- ---
12
-
13
- ## 🚨 SIZE LIMIT WARNING
14
-
15
- **This generated guide MUST be 200-400 lines maximum.**
16
-
17
- **When filling this template**:
18
- - ✅ Code examples: 5-15 lines (NEVER > 20)
19
- - ✅ ONE example per pattern
20
- - ✅ Use file:line references, not full code
21
- - ✅ Use tables for multiple patterns
22
- - ❌ NO multiple examples for same pattern
23
- - ❌ NO verbose explanations
24
- - ❌ NO copying entire functions
25
-
26
- **Validate line count after generation**: `wc -l [this-file]`
27
- **If > 400 lines**: Condense immediately before continuing!
28
-
29
- ---
30
-
31
- ## Integrated Services
32
-
33
- | Service | Purpose | Auth | Source |
34
- |---------|---------|------|--------|
35
- | [Service1] | [Purpose] | [Method] | [file:lines] |
36
- | [Service2] | [Purpose] | [Method] | [file:lines] |
37
-
38
- ---
39
-
40
- ## Client Pattern
41
-
42
- ```[language]
43
- # Source: [file:lines]
44
- [client_class]
45
- ```
46
-
47
- **Components**: Base URL, auth, retries, timeouts
48
-
49
- ---
50
-
51
- ## Authentication
52
-
53
- ### API Key
54
-
55
- ```[language]
56
- # Source: [file:lines]
57
- [api_key_auth]
58
- ```
59
-
60
- ### OAuth2
61
-
62
- ```[language]
63
- # Source: [file:lines]
64
- [oauth2_auth]
65
- ```
66
-
67
- **Token Management**: Store securely, refresh before expiry
68
-
69
- ---
70
-
71
- ## Error Handling
72
-
73
- ```[language]
74
- # Source: [file:lines]
75
- [error_handling]
76
- ```
77
-
78
- | Status | Action |
79
- |--------|--------|
80
- | 4xx | Log, don't retry (usually) |
81
- | 5xx | Log, retry with backoff |
82
- | Timeout | Retry with backoff |
83
-
84
- ---
85
-
86
- ## Retry Logic
87
-
88
- ```[language]
89
- # Source: [file:lines]
90
- [retry_pattern]
91
- ```
92
-
93
- **Strategy**: Exponential backoff
94
- **Max Retries**: [N]
95
- **When**: 5xx, timeouts, connection errors
96
- **When Not**: 4xx (usually), auth failures
97
-
98
- ---
99
-
100
- ## Rate Limiting
101
-
102
- ```[language]
103
- # Source: [file:lines]
104
- [rate_limit]
105
- ```
106
-
107
- **Headers**: `X-RateLimit-*`, `Retry-After`
108
-
109
- ---
110
-
111
- ## Timeouts
112
-
113
- ```[language]
114
- # Source: [file:lines]
115
- [timeout_config]
116
- ```
117
-
118
- **Types**: Connection | Read | Total
119
-
120
- ---
121
-
122
- ## Best Practices
123
-
124
- | ✅ DO | ❌ DON'T |
125
- |-------|----------|
126
- | Retry with backoff | Infinite retries |
127
- | Set timeouts | Wait forever |
128
- | Log external calls | Silent failures |
129
- | Cache when possible | Call repeatedly |
130
- | Store secrets securely | Hardcode API keys |
131
-
132
- ---
133
-
134
- ## Security
135
-
136
- - ✅ Env vars / secrets manager
137
- - ✅ HTTPS only
138
- - ✅ Validate TLS certs
139
- - ❌ Log API keys
140
- - ❌ Ignore cert errors
141
-
142
- ---
143
-
144
- ## Testing
145
-
146
- ```[language]
147
- # Source: [test_file:lines]
148
- [mock_example]
149
- ```
150
-
151
- **Strategy**: Mock in unit tests, use test APIs in integration tests
152
-
153
- ---
154
-
155
- ## References
156
-
157
- - **Clients**: `[path/to/clients]`
158
- - **Service Docs**: [Links]
159
-
160
- ---