@coralai/sps-cli 0.55.12 → 0.56.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 (431) hide show
  1. package/dist/commands/cardMarkComplete.d.ts.map +1 -1
  2. package/dist/commands/cardMarkComplete.js +6 -3
  3. package/dist/commands/cardMarkComplete.js.map +1 -1
  4. package/dist/commands/projectInit.d.ts +18 -16
  5. package/dist/commands/projectInit.d.ts.map +1 -1
  6. package/dist/commands/projectInit.js +59 -186
  7. package/dist/commands/projectInit.js.map +1 -1
  8. package/dist/commands/skillCommand.js +7 -4
  9. package/dist/commands/skillCommand.js.map +1 -1
  10. package/dist/commands/tick.d.ts +2 -20
  11. package/dist/commands/tick.d.ts.map +1 -1
  12. package/dist/commands/tick.js +58 -1
  13. package/dist/commands/tick.js.map +1 -1
  14. package/dist/console/index.d.ts.map +1 -1
  15. package/dist/console/index.js +4 -0
  16. package/dist/console/index.js.map +1 -1
  17. package/dist/console/routes/chat.d.ts.map +1 -1
  18. package/dist/console/routes/chat.js +121 -0
  19. package/dist/console/routes/chat.js.map +1 -1
  20. package/dist/console/routes/projects.d.ts +0 -6
  21. package/dist/console/routes/projects.d.ts.map +1 -1
  22. package/dist/console/routes/projects.js +11 -2
  23. package/dist/console/routes/projects.js.map +1 -1
  24. package/dist/console/routes/providers.d.ts +10 -0
  25. package/dist/console/routes/providers.d.ts.map +1 -0
  26. package/dist/console/routes/providers.js +63 -0
  27. package/dist/console/routes/providers.js.map +1 -0
  28. package/dist/console/routes/smartarrange.d.ts +4 -0
  29. package/dist/console/routes/smartarrange.d.ts.map +1 -0
  30. package/dist/console/routes/smartarrange.js +107 -0
  31. package/dist/console/routes/smartarrange.js.map +1 -0
  32. package/dist/console/routes/system.d.ts.map +1 -1
  33. package/dist/console/routes/system.js +28 -0
  34. package/dist/console/routes/system.js.map +1 -1
  35. package/dist/console/routes/workers.d.ts.map +1 -1
  36. package/dist/console/routes/workers.js +36 -4
  37. package/dist/console/routes/workers.js.map +1 -1
  38. package/dist/console-assets/assets/index-CWkYVI5d.js +600 -0
  39. package/dist/console-assets/assets/index-CnUBHNsN.css +10 -0
  40. package/dist/console-assets/index.html +2 -2
  41. package/dist/core/agents/AcpBackend.d.ts +24 -0
  42. package/dist/core/agents/AcpBackend.d.ts.map +1 -0
  43. package/dist/core/agents/AcpBackend.js +86 -0
  44. package/dist/core/agents/AcpBackend.js.map +1 -0
  45. package/dist/core/agents/AgentBackend.d.ts +53 -0
  46. package/dist/core/agents/AgentBackend.d.ts.map +1 -0
  47. package/dist/core/agents/AgentBackend.js +18 -0
  48. package/dist/core/agents/AgentBackend.js.map +1 -0
  49. package/dist/core/agents/ClaudeAcpBackend.d.ts +13 -0
  50. package/dist/core/agents/ClaudeAcpBackend.d.ts.map +1 -0
  51. package/dist/core/agents/ClaudeAcpBackend.js +14 -0
  52. package/dist/core/agents/ClaudeAcpBackend.js.map +1 -0
  53. package/dist/core/agents/ClaudeSdkBackend.d.ts +26 -0
  54. package/dist/core/agents/ClaudeSdkBackend.d.ts.map +1 -0
  55. package/dist/core/agents/ClaudeSdkBackend.js +102 -0
  56. package/dist/core/agents/ClaudeSdkBackend.js.map +1 -0
  57. package/dist/core/agents/CodexAppServerBackend.d.ts +33 -0
  58. package/dist/core/agents/CodexAppServerBackend.d.ts.map +1 -0
  59. package/dist/core/agents/CodexAppServerBackend.js +168 -0
  60. package/dist/core/agents/CodexAppServerBackend.js.map +1 -0
  61. package/dist/core/agents/OpenAiAgentBackend.d.ts +39 -0
  62. package/dist/core/agents/OpenAiAgentBackend.d.ts.map +1 -0
  63. package/dist/core/agents/OpenAiAgentBackend.js +132 -0
  64. package/dist/core/agents/OpenAiAgentBackend.js.map +1 -0
  65. package/dist/core/agents/agentsMd.d.ts +2 -0
  66. package/dist/core/agents/agentsMd.d.ts.map +1 -0
  67. package/dist/core/agents/agentsMd.js +22 -0
  68. package/dist/core/agents/agentsMd.js.map +1 -0
  69. package/dist/core/agents/localTracing.d.ts +3 -0
  70. package/dist/core/agents/localTracing.d.ts.map +1 -0
  71. package/dist/core/agents/localTracing.js +42 -0
  72. package/dist/core/agents/localTracing.js.map +1 -0
  73. package/dist/core/agents/resolveBackend.d.ts +26 -0
  74. package/dist/core/agents/resolveBackend.d.ts.map +1 -0
  75. package/dist/core/agents/resolveBackend.js +27 -0
  76. package/dist/core/agents/resolveBackend.js.map +1 -0
  77. package/dist/core/agents/workerOutputSink.d.ts +4 -0
  78. package/dist/core/agents/workerOutputSink.d.ts.map +1 -0
  79. package/dist/core/agents/workerOutputSink.js +39 -0
  80. package/dist/core/agents/workerOutputSink.js.map +1 -0
  81. package/dist/core/config.d.ts +6 -0
  82. package/dist/core/config.d.ts.map +1 -1
  83. package/dist/core/config.js +4 -0
  84. package/dist/core/config.js.map +1 -1
  85. package/dist/core/intel/RuntimeSession.d.ts +16 -0
  86. package/dist/core/intel/RuntimeSession.d.ts.map +1 -0
  87. package/dist/core/intel/RuntimeSession.js +89 -0
  88. package/dist/core/intel/RuntimeSession.js.map +1 -0
  89. package/dist/core/intel/agentsConfig.d.ts +20 -0
  90. package/dist/core/intel/agentsConfig.d.ts.map +1 -0
  91. package/dist/core/intel/agentsConfig.js +68 -0
  92. package/dist/core/intel/agentsConfig.js.map +1 -0
  93. package/dist/core/intel/planStore.d.ts +23 -0
  94. package/dist/core/intel/planStore.d.ts.map +1 -0
  95. package/dist/core/intel/planStore.js +67 -0
  96. package/dist/core/intel/planStore.js.map +1 -0
  97. package/dist/core/intel/types.d.ts +86 -0
  98. package/dist/core/intel/types.d.ts.map +1 -0
  99. package/dist/core/intel/types.js +8 -0
  100. package/dist/core/intel/types.js.map +1 -0
  101. package/dist/core/memory.d.ts.map +1 -1
  102. package/dist/core/memory.js +9 -12
  103. package/dist/core/memory.js.map +1 -1
  104. package/dist/core/memoryIngest.d.ts +18 -0
  105. package/dist/core/memoryIngest.d.ts.map +1 -0
  106. package/dist/core/memoryIngest.js +56 -0
  107. package/dist/core/memoryIngest.js.map +1 -0
  108. package/dist/core/memoryProvider.d.ts +63 -0
  109. package/dist/core/memoryProvider.d.ts.map +1 -0
  110. package/dist/core/memoryProvider.js +205 -0
  111. package/dist/core/memoryProvider.js.map +1 -0
  112. package/dist/core/skillStore.d.ts.map +1 -1
  113. package/dist/core/skillStore.js +2 -1
  114. package/dist/core/skillStore.js.map +1 -1
  115. package/dist/core/skills/SkillsManager.d.ts +38 -0
  116. package/dist/core/skills/SkillsManager.d.ts.map +1 -0
  117. package/dist/core/skills/SkillsManager.js +231 -0
  118. package/dist/core/skills/SkillsManager.js.map +1 -0
  119. package/dist/core/skills/distribution.d.ts +64 -0
  120. package/dist/core/skills/distribution.d.ts.map +1 -0
  121. package/dist/core/skills/distribution.js +269 -0
  122. package/dist/core/skills/distribution.js.map +1 -0
  123. package/dist/core/skills/index.d.ts +13 -0
  124. package/dist/core/skills/index.d.ts.map +1 -0
  125. package/dist/core/skills/index.js +13 -0
  126. package/dist/core/skills/index.js.map +1 -0
  127. package/dist/core/skills/types.d.ts +44 -0
  128. package/dist/core/skills/types.d.ts.map +1 -0
  129. package/dist/core/skills/types.js +9 -0
  130. package/dist/core/skills/types.js.map +1 -0
  131. package/dist/core/taskPrompts.d.ts +0 -12
  132. package/dist/core/taskPrompts.d.ts.map +1 -1
  133. package/dist/core/taskPrompts.js +0 -14
  134. package/dist/core/taskPrompts.js.map +1 -1
  135. package/dist/core/transcriptIngest.d.ts +37 -0
  136. package/dist/core/transcriptIngest.d.ts.map +1 -0
  137. package/dist/core/transcriptIngest.js +137 -0
  138. package/dist/core/transcriptIngest.js.map +1 -0
  139. package/dist/core/wiki/types.d.ts +282 -745
  140. package/dist/core/wiki/types.d.ts.map +1 -1
  141. package/dist/core/wiki/types.js +1 -1
  142. package/dist/core/wiki/types.js.map +1 -1
  143. package/dist/engines/SmartArrangeEngine.d.ts +75 -0
  144. package/dist/engines/SmartArrangeEngine.d.ts.map +1 -0
  145. package/dist/engines/SmartArrangeEngine.js +112 -0
  146. package/dist/engines/SmartArrangeEngine.js.map +1 -0
  147. package/dist/engines/StageEngine.d.ts +3 -17
  148. package/dist/engines/StageEngine.d.ts.map +1 -1
  149. package/dist/engines/StageEngine.js +13 -91
  150. package/dist/engines/StageEngine.js.map +1 -1
  151. package/dist/engines/smartarrange/AcpWorkerExec.d.ts +35 -0
  152. package/dist/engines/smartarrange/AcpWorkerExec.d.ts.map +1 -0
  153. package/dist/engines/smartarrange/AcpWorkerExec.js +71 -0
  154. package/dist/engines/smartarrange/AcpWorkerExec.js.map +1 -0
  155. package/dist/engines/smartarrange/cardSink.d.ts +29 -0
  156. package/dist/engines/smartarrange/cardSink.d.ts.map +1 -0
  157. package/dist/engines/smartarrange/cardSink.js +43 -0
  158. package/dist/engines/smartarrange/cardSink.js.map +1 -0
  159. package/dist/engines/smartarrange/runner.d.ts +24 -0
  160. package/dist/engines/smartarrange/runner.d.ts.map +1 -0
  161. package/dist/engines/smartarrange/runner.js +116 -0
  162. package/dist/engines/smartarrange/runner.js.map +1 -0
  163. package/dist/engines/smartarrange/screenshot.d.ts +5 -0
  164. package/dist/engines/smartarrange/screenshot.d.ts.map +1 -0
  165. package/dist/engines/smartarrange/screenshot.js +117 -0
  166. package/dist/engines/smartarrange/screenshot.js.map +1 -0
  167. package/dist/main.js +127 -92
  168. package/dist/main.js.map +1 -1
  169. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  170. package/dist/manager/worker-manager-impl.js +7 -0
  171. package/dist/manager/worker-manager-impl.js.map +1 -1
  172. package/dist/providers/LLMClient.d.ts +32 -0
  173. package/dist/providers/LLMClient.d.ts.map +1 -0
  174. package/dist/providers/LLMClient.js +108 -0
  175. package/dist/providers/LLMClient.js.map +1 -0
  176. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  177. package/dist/providers/MarkdownTaskBackend.js +3 -2
  178. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  179. package/dist/providers/llm/chatTools.d.ts +11 -0
  180. package/dist/providers/llm/chatTools.d.ts.map +1 -0
  181. package/dist/providers/llm/chatTools.js +57 -0
  182. package/dist/providers/llm/chatTools.js.map +1 -0
  183. package/dist/providers/llm/codexAuth.d.ts +8 -0
  184. package/dist/providers/llm/codexAuth.d.ts.map +1 -0
  185. package/dist/providers/llm/codexAuth.js +57 -0
  186. package/dist/providers/llm/codexAuth.js.map +1 -0
  187. package/dist/providers/llm/codexModel.d.ts +14 -0
  188. package/dist/providers/llm/codexModel.d.ts.map +1 -0
  189. package/dist/providers/llm/codexModel.js +96 -0
  190. package/dist/providers/llm/codexModel.js.map +1 -0
  191. package/dist/providers/llm/localSubscription.d.ts +15 -0
  192. package/dist/providers/llm/localSubscription.d.ts.map +1 -0
  193. package/dist/providers/llm/localSubscription.js +66 -0
  194. package/dist/providers/llm/localSubscription.js.map +1 -0
  195. package/dist/providers/llm/modelFactory.d.ts +14 -0
  196. package/dist/providers/llm/modelFactory.d.ts.map +1 -0
  197. package/dist/providers/llm/modelFactory.js +22 -0
  198. package/dist/providers/llm/modelFactory.js.map +1 -0
  199. package/dist/providers/llm/monitorSkills.d.ts +6 -0
  200. package/dist/providers/llm/monitorSkills.d.ts.map +1 -0
  201. package/dist/providers/llm/monitorSkills.js +37 -0
  202. package/dist/providers/llm/monitorSkills.js.map +1 -0
  203. package/dist/providers/llm/probeTools.d.ts +7 -0
  204. package/dist/providers/llm/probeTools.d.ts.map +1 -0
  205. package/dist/providers/llm/probeTools.js +84 -0
  206. package/dist/providers/llm/probeTools.js.map +1 -0
  207. package/dist/providers/llm/providers.d.ts +26 -0
  208. package/dist/providers/llm/providers.d.ts.map +1 -0
  209. package/dist/providers/llm/providers.js +68 -0
  210. package/dist/providers/llm/providers.js.map +1 -0
  211. package/dist/providers/llm/skillTools.d.ts +4 -0
  212. package/dist/providers/llm/skillTools.d.ts.map +1 -0
  213. package/dist/providers/llm/skillTools.js +42 -0
  214. package/dist/providers/llm/skillTools.js.map +1 -0
  215. package/dist/providers/llm/workerTools.d.ts +9 -0
  216. package/dist/providers/llm/workerTools.d.ts.map +1 -0
  217. package/dist/providers/llm/workerTools.js +111 -0
  218. package/dist/providers/llm/workerTools.js.map +1 -0
  219. package/dist/providers/mcp/spsMcpServer.d.ts +15 -0
  220. package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -0
  221. package/dist/providers/mcp/spsMcpServer.js +67 -0
  222. package/dist/providers/mcp/spsMcpServer.js.map +1 -0
  223. package/dist/providers/mcp/spsMcpStdio.d.ts +2 -0
  224. package/dist/providers/mcp/spsMcpStdio.d.ts.map +1 -0
  225. package/dist/providers/mcp/spsMcpStdio.js +32 -0
  226. package/dist/providers/mcp/spsMcpStdio.js.map +1 -0
  227. package/dist/providers/mcp/spsMcpStdioConfig.d.ts +11 -0
  228. package/dist/providers/mcp/spsMcpStdioConfig.d.ts.map +1 -0
  229. package/dist/providers/mcp/spsMcpStdioConfig.js +19 -0
  230. package/dist/providers/mcp/spsMcpStdioConfig.js.map +1 -0
  231. package/dist/server.d.ts +23 -0
  232. package/dist/server.d.ts.map +1 -1
  233. package/dist/server.js +23 -0
  234. package/dist/server.js.map +1 -1
  235. package/dist/services/ChatService.d.ts +8 -0
  236. package/dist/services/ChatService.d.ts.map +1 -1
  237. package/dist/services/ChatService.js +2 -0
  238. package/dist/services/ChatService.js.map +1 -1
  239. package/dist/services/LogService.d.ts +1 -1
  240. package/dist/services/LogService.d.ts.map +1 -1
  241. package/dist/services/LogService.js +3 -2
  242. package/dist/services/LogService.js.map +1 -1
  243. package/dist/services/ProjectService.d.ts +12 -2
  244. package/dist/services/ProjectService.d.ts.map +1 -1
  245. package/dist/services/ProjectService.js +1 -0
  246. package/dist/services/ProjectService.js.map +1 -1
  247. package/dist/services/SkillService.js +11 -13
  248. package/dist/services/SkillService.js.map +1 -1
  249. package/dist/services/SmartArrangeService.d.ts +12 -0
  250. package/dist/services/SmartArrangeService.d.ts.map +1 -0
  251. package/dist/services/SmartArrangeService.js +37 -0
  252. package/dist/services/SmartArrangeService.js.map +1 -0
  253. package/dist/services/SystemService.d.ts +20 -0
  254. package/dist/services/SystemService.d.ts.map +1 -1
  255. package/dist/services/SystemService.js +93 -0
  256. package/dist/services/SystemService.js.map +1 -1
  257. package/dist/services/WorkerService.d.ts +8 -0
  258. package/dist/services/WorkerService.d.ts.map +1 -1
  259. package/dist/services/WorkerService.js +73 -3
  260. package/dist/services/WorkerService.js.map +1 -1
  261. package/dist/services/container.d.ts +2 -0
  262. package/dist/services/container.d.ts.map +1 -1
  263. package/dist/services/container.js +2 -0
  264. package/dist/services/container.js.map +1 -1
  265. package/dist/shared/localTime.d.ts +8 -0
  266. package/dist/shared/localTime.d.ts.map +1 -0
  267. package/dist/shared/localTime.js +11 -0
  268. package/dist/shared/localTime.js.map +1 -0
  269. package/dist/shared/runtimePaths.d.ts +1 -1
  270. package/dist/shared/runtimePaths.d.ts.map +1 -1
  271. package/dist/shared/runtimePaths.js +2 -2
  272. package/dist/shared/runtimePaths.js.map +1 -1
  273. package/dist/shared/runtimeSchemas.d.ts +74 -245
  274. package/dist/shared/runtimeSchemas.d.ts.map +1 -1
  275. package/dist/shared/runtimeSchemas.js +2 -2
  276. package/dist/shared/runtimeSchemas.js.map +1 -1
  277. package/monitor-skills/probe-playbook/SKILL.md +32 -0
  278. package/monitor-skills/visual-rubric/SKILL.md +34 -0
  279. package/package.json +8 -8
  280. package/project-template/.claude/hooks/stop.sh +3 -1
  281. package/dist/console-assets/assets/index-BvWWj69G.js +0 -557
  282. package/dist/console-assets/assets/index-Eo4PuNPl.css +0 -10
  283. package/dist/interfaces/ACPClient.d.ts +0 -107
  284. package/dist/interfaces/ACPClient.d.ts.map +0 -1
  285. package/dist/interfaces/ACPClient.js +0 -17
  286. package/dist/interfaces/ACPClient.js.map +0 -1
  287. package/dist/interfaces/AgentRuntime.d.ts +0 -40
  288. package/dist/interfaces/AgentRuntime.d.ts.map +0 -1
  289. package/dist/interfaces/AgentRuntime.js +0 -17
  290. package/dist/interfaces/AgentRuntime.js.map +0 -1
  291. package/dist/manager/agentmemory.d.ts +0 -6
  292. package/dist/manager/agentmemory.d.ts.map +0 -1
  293. package/dist/manager/agentmemory.js +0 -73
  294. package/dist/manager/agentmemory.js.map +0 -1
  295. package/dist/models/acp.d.ts +0 -64
  296. package/dist/models/acp.d.ts.map +0 -1
  297. package/dist/models/acp.js +0 -17
  298. package/dist/models/acp.js.map +0 -1
  299. package/dist/providers/LocalACPClient.d.ts +0 -27
  300. package/dist/providers/LocalACPClient.d.ts.map +0 -1
  301. package/dist/providers/LocalACPClient.js +0 -26
  302. package/dist/providers/LocalACPClient.js.map +0 -1
  303. package/dist/providers/adapters/AcpSdkAdapter.d.ts +0 -24
  304. package/dist/providers/adapters/AcpSdkAdapter.d.ts.map +0 -1
  305. package/dist/providers/adapters/AcpSdkAdapter.js +0 -439
  306. package/dist/providers/adapters/AcpSdkAdapter.js.map +0 -1
  307. package/dist/providers/adapters/acp-fs-handlers.d.ts +0 -26
  308. package/dist/providers/adapters/acp-fs-handlers.d.ts.map +0 -1
  309. package/dist/providers/adapters/acp-fs-handlers.js +0 -61
  310. package/dist/providers/adapters/acp-fs-handlers.js.map +0 -1
  311. package/dist/providers/adapters/acp-permissions.d.ts +0 -42
  312. package/dist/providers/adapters/acp-permissions.d.ts.map +0 -1
  313. package/dist/providers/adapters/acp-permissions.js +0 -76
  314. package/dist/providers/adapters/acp-permissions.js.map +0 -1
  315. package/dist/providers/adapters/acp-session-accumulator.d.ts +0 -55
  316. package/dist/providers/adapters/acp-session-accumulator.d.ts.map +0 -1
  317. package/dist/providers/adapters/acp-session-accumulator.js +0 -133
  318. package/dist/providers/adapters/acp-session-accumulator.js.map +0 -1
  319. package/dist/providers/adapters/acp-terminal-manager.d.ts +0 -56
  320. package/dist/providers/adapters/acp-terminal-manager.d.ts.map +0 -1
  321. package/dist/providers/adapters/acp-terminal-manager.js +0 -127
  322. package/dist/providers/adapters/acp-terminal-manager.js.map +0 -1
  323. package/project-template/logs/.gitkeep +0 -0
  324. package/skills/architecture-decision-records/SKILL.md +0 -207
  325. package/skills/backend/SKILL.md +0 -62
  326. package/skills/backend/references/api-design.md +0 -168
  327. package/skills/backend/references/caching.md +0 -181
  328. package/skills/backend/references/data-access.md +0 -173
  329. package/skills/backend/references/layering.md +0 -181
  330. package/skills/backend/references/observability.md +0 -190
  331. package/skills/backend/references/resilience.md +0 -201
  332. package/skills/backend/references/security.md +0 -186
  333. package/skills/backend-architect/SKILL.md +0 -119
  334. package/skills/code-reviewer/SKILL.md +0 -143
  335. package/skills/coding-standards/SKILL.md +0 -60
  336. package/skills/coding-standards/references/clean-code.md +0 -258
  337. package/skills/coding-standards/references/code-review.md +0 -192
  338. package/skills/coding-standards/references/commits-and-prs.md +0 -226
  339. package/skills/coding-standards/references/error-strategy.md +0 -193
  340. package/skills/coding-standards/references/naming.md +0 -185
  341. package/skills/coding-standards/references/tdd.md +0 -171
  342. package/skills/database/SKILL.md +0 -53
  343. package/skills/database/references/indexing.md +0 -190
  344. package/skills/database/references/migrations.md +0 -199
  345. package/skills/database/references/nosql.md +0 -185
  346. package/skills/database/references/queries.md +0 -295
  347. package/skills/database/references/scaling.md +0 -203
  348. package/skills/database/references/schema.md +0 -191
  349. package/skills/database-optimizer/SKILL.md +0 -168
  350. package/skills/debugging-workflow/SKILL.md +0 -244
  351. package/skills/dev-worker/SKILL.md +0 -40
  352. package/skills/dev-worker/references/architect.md +0 -139
  353. package/skills/dev-worker/references/backend.md +0 -163
  354. package/skills/dev-worker/references/frontend.md +0 -122
  355. package/skills/dev-worker/references/fullstack.md +0 -179
  356. package/skills/dev-worker/references/optimizer.md +0 -151
  357. package/skills/dev-worker/references/phaser.md +0 -109
  358. package/skills/dev-worker/references/prototyper.md +0 -171
  359. package/skills/dev-worker/references/reviewer.md +0 -122
  360. package/skills/dev-worker/references/security.md +0 -154
  361. package/skills/dev-worker/references/senior.md +0 -155
  362. package/skills/dev-worker/references/typescript.md +0 -65
  363. package/skills/dev-worker/references/writer.md +0 -201
  364. package/skills/devops/SKILL.md +0 -55
  365. package/skills/devops/references/ci-cd.md +0 -204
  366. package/skills/devops/references/containers.md +0 -272
  367. package/skills/devops/references/deploy.md +0 -201
  368. package/skills/devops/references/iac.md +0 -252
  369. package/skills/devops/references/observability.md +0 -228
  370. package/skills/devops/references/secrets.md +0 -178
  371. package/skills/devops-automator/SKILL.md +0 -164
  372. package/skills/frontend/SKILL.md +0 -52
  373. package/skills/frontend/references/accessibility.md +0 -222
  374. package/skills/frontend/references/components.md +0 -206
  375. package/skills/frontend/references/performance.md +0 -219
  376. package/skills/frontend/references/routing.md +0 -209
  377. package/skills/frontend/references/state.md +0 -190
  378. package/skills/frontend/references/testing.md +0 -216
  379. package/skills/frontend-developer/SKILL.md +0 -115
  380. package/skills/git-workflow/SKILL.md +0 -355
  381. package/skills/golang/SKILL.md +0 -49
  382. package/skills/golang/references/concurrency.md +0 -284
  383. package/skills/golang/references/errors.md +0 -241
  384. package/skills/golang/references/idioms.md +0 -285
  385. package/skills/golang/references/testing.md +0 -238
  386. package/skills/java/SKILL.md +0 -50
  387. package/skills/java/references/concurrency.md +0 -194
  388. package/skills/java/references/idioms.md +0 -283
  389. package/skills/java/references/testing.md +0 -228
  390. package/skills/kotlin/SKILL.md +0 -47
  391. package/skills/kotlin/references/coroutines.md +0 -240
  392. package/skills/kotlin/references/idioms.md +0 -268
  393. package/skills/kotlin/references/testing.md +0 -219
  394. package/skills/mobile/SKILL.md +0 -50
  395. package/skills/mobile/references/architecture.md +0 -204
  396. package/skills/mobile/references/navigation.md +0 -158
  397. package/skills/mobile/references/performance.md +0 -152
  398. package/skills/mobile/references/platform.md +0 -166
  399. package/skills/mobile/references/state-and-data.md +0 -174
  400. package/skills/python/SKILL.md +0 -51
  401. package/skills/python/THIRD_PARTY.md +0 -14
  402. package/skills/python/references/async.md +0 -218
  403. package/skills/python/references/error-handling.md +0 -254
  404. package/skills/python/references/idioms.md +0 -279
  405. package/skills/python/references/packaging.md +0 -233
  406. package/skills/python/references/testing.md +0 -269
  407. package/skills/python/references/typing.md +0 -292
  408. package/skills/qa-tester/SKILL.md +0 -186
  409. package/skills/rust/SKILL.md +0 -50
  410. package/skills/rust/references/async.md +0 -224
  411. package/skills/rust/references/errors.md +0 -240
  412. package/skills/rust/references/ownership.md +0 -263
  413. package/skills/rust/references/testing.md +0 -274
  414. package/skills/rust/references/traits.md +0 -250
  415. package/skills/security-engineer/SKILL.md +0 -157
  416. package/skills/sps-memory/SKILL.md +0 -213
  417. package/skills/sps-pipeline/SKILL.md +0 -476
  418. package/skills/swift/SKILL.md +0 -48
  419. package/skills/swift/references/concurrency.md +0 -280
  420. package/skills/swift/references/idioms.md +0 -334
  421. package/skills/swift/references/testing.md +0 -229
  422. package/skills/tax-worker/SKILL.md +0 -150
  423. package/skills/tax-worker/references/account-codes.md +0 -165
  424. package/skills/typescript/SKILL.md +0 -51
  425. package/skills/typescript/references/async.md +0 -241
  426. package/skills/typescript/references/errors.md +0 -208
  427. package/skills/typescript/references/idioms.md +0 -246
  428. package/skills/typescript/references/testing.md +0 -225
  429. package/skills/typescript/references/tooling.md +0 -208
  430. package/skills/typescript/references/types.md +0 -259
  431. package/skills/wiki-update/SKILL.md +0 -300
@@ -1,279 +0,0 @@
1
- # Python Idioms
2
-
3
- Core Pythonic patterns. Language-focused (no architecture here).
4
-
5
- ## EAFP — Easier to Ask Forgiveness Than Permission
6
-
7
- Python prefers exception handling over condition checking.
8
-
9
- ```python
10
- # Good: EAFP
11
- def get_value(d: dict, key: str, default=None):
12
- try:
13
- return d[key]
14
- except KeyError:
15
- return default
16
-
17
- # Bad: LBYL (Look Before You Leap) — race condition risk, slower, less Pythonic
18
- def get_value(d: dict, key: str, default=None):
19
- if key in d:
20
- return d[key]
21
- return default
22
- ```
23
-
24
- When to use which: EAFP is Pythonic for dict / attr / file access. LBYL is fine for user-facing validation where the failure message matters.
25
-
26
- ## Comprehensions
27
-
28
- Prefer comprehensions over `map`/`filter` + lambda. Readability wins.
29
-
30
- ```python
31
- # List / set / dict comprehensions
32
- active_names = [u.name for u in users if u.is_active]
33
- unique_tags = {t.strip() for tag_group in raw for t in tag_group.split(',')}
34
- user_ages = {u.id: u.age for u in users}
35
-
36
- # Generator expression (lazy, memory-efficient)
37
- total = sum(order.total for order in orders if order.paid)
38
- ```
39
-
40
- **Rule**: If the comprehension doesn't fit on 2 lines, rewrite as a `for` loop. Nested comprehensions (`[x for x in y for z in w]`) are almost always unreadable.
41
-
42
- ## Generator Functions
43
-
44
- Lazy iteration for large datasets. Use `yield` to avoid loading everything into memory.
45
-
46
- ```python
47
- def read_large_file(path: str) -> Iterator[str]:
48
- with open(path) as f:
49
- for line in f:
50
- yield line.strip()
51
-
52
- # Caller: streams one line at a time
53
- for line in read_large_file('huge.log'):
54
- process(line)
55
- ```
56
-
57
- Generator expressions (parentheses not brackets):
58
- ```python
59
- squared = (x * x for x in range(10_000_000)) # 0 memory allocated
60
- ```
61
-
62
- ## Context Managers (`with`)
63
-
64
- Use `with` for any resource (file, lock, DB conn, etc.). Never manual `open()` / `close()`.
65
-
66
- ```python
67
- # File
68
- with open('data.json') as f:
69
- data = json.load(f)
70
-
71
- # Multiple resources
72
- with open('in.txt') as src, open('out.txt', 'w') as dst:
73
- dst.write(src.read().upper())
74
-
75
- # Custom context manager (contextlib)
76
- from contextlib import contextmanager
77
-
78
- @contextmanager
79
- def temp_directory():
80
- d = tempfile.mkdtemp()
81
- try:
82
- yield d
83
- finally:
84
- shutil.rmtree(d)
85
-
86
- with temp_directory() as d:
87
- # use d, auto-cleaned
88
- pass
89
- ```
90
-
91
- ## Decorators
92
-
93
- Use for cross-cutting concerns (logging, caching, timing, auth). Don't nest more than 2 deep.
94
-
95
- ```python
96
- # Simple decorator
97
- from functools import wraps
98
-
99
- def timed(func):
100
- @wraps(func) # preserve name, docstring, signature
101
- def wrapper(*args, **kwargs):
102
- start = time.perf_counter()
103
- result = func(*args, **kwargs)
104
- duration = time.perf_counter() - start
105
- logger.info(f"{func.__name__} took {duration:.3f}s")
106
- return result
107
- return wrapper
108
-
109
- @timed
110
- def expensive_operation(x: int) -> int:
111
- time.sleep(1)
112
- return x * 2
113
- ```
114
-
115
- Parameterized decorators (3 levels deep — use sparingly):
116
- ```python
117
- def retry(max_attempts: int = 3):
118
- def decorator(func):
119
- @wraps(func)
120
- def wrapper(*args, **kwargs):
121
- for attempt in range(max_attempts):
122
- try:
123
- return func(*args, **kwargs)
124
- except Exception:
125
- if attempt == max_attempts - 1:
126
- raise
127
- return wrapper
128
- return decorator
129
-
130
- @retry(max_attempts=5)
131
- def flaky_api_call(): ...
132
- ```
133
-
134
- ## Data Classes
135
-
136
- Prefer `dataclass` over manual `__init__` for value objects. Use `frozen=True` for immutability.
137
-
138
- ```python
139
- from dataclasses import dataclass, field
140
- from typing import ClassVar
141
-
142
- @dataclass(frozen=True, slots=True)
143
- class User:
144
- id: str
145
- name: str
146
- email: str
147
- roles: list[str] = field(default_factory=list) # never mutable default!
148
- created_at: datetime = field(default_factory=datetime.now)
149
-
150
- # Class-level constant
151
- MAX_ROLES: ClassVar[int] = 10
152
- ```
153
-
154
- **Rules**:
155
- - `slots=True` for performance (Python 3.10+)
156
- - `frozen=True` if the object shouldn't change after creation
157
- - Never use mutable default (`roles: list[str] = []`) — use `field(default_factory=list)`
158
- - `ClassVar` for constants that shouldn't become instance attrs
159
-
160
- ## `pathlib` over `os.path`
161
-
162
- ```python
163
- from pathlib import Path
164
-
165
- # Good
166
- config = Path.home() / '.myapp' / 'config.json'
167
- if config.exists():
168
- data = json.loads(config.read_text())
169
- for log in Path('logs').glob('*.log'):
170
- process(log)
171
-
172
- # Bad
173
- import os
174
- config = os.path.join(os.path.expanduser('~'), '.myapp', 'config.json')
175
- if os.path.exists(config):
176
- with open(config) as f:
177
- data = json.load(f)
178
- ```
179
-
180
- ## `match`/`case` — structural pattern matching (Python 3.10+)
181
-
182
- Use for dispatch on shape, not just value. For simple value checks, `if/elif` is still cleaner.
183
-
184
- ```python
185
- def describe(point):
186
- match point:
187
- case (0, 0):
188
- return "origin"
189
- case (0, y):
190
- return f"y-axis at {y}"
191
- case (x, 0):
192
- return f"x-axis at {x}"
193
- case (x, y) if x == y:
194
- return f"diagonal at {x}"
195
- case (x, y):
196
- return f"point ({x}, {y})"
197
- case _:
198
- return "not a point"
199
-
200
- # Class patterns — great for ADTs / sum types
201
- match event:
202
- case Click(x=x, y=y):
203
- handle_click(x, y)
204
- case KeyPress(key="q"):
205
- quit()
206
- case KeyPress(key=k):
207
- handle_key(k)
208
- ```
209
-
210
- **When NOT to use**: straightforward value checks (`if x == 1: ... elif x == 2: ...`). Pattern matching shines for destructuring nested shapes.
211
-
212
- ## Walrus operator `:=` (Python 3.8+)
213
-
214
- Assignment expression — assign and use in the same statement. Use sparingly.
215
-
216
- ```python
217
- # Good: avoid double-reading / double-computing
218
- while chunk := f.read(8192):
219
- process(chunk)
220
-
221
- if (n := len(data)) > 10:
222
- print(f"Too many items ({n})")
223
-
224
- # Good in comprehensions: avoid recomputing
225
- results = [y for x in items if (y := expensive(x)) is not None]
226
-
227
- # Bad: over-use where a regular assignment is clearer
228
- if (user := db.find(uid)) and user.active and (perms := user.get_perms()) and "admin" in perms:
229
- ...
230
- # Prefer:
231
- user = db.find(uid)
232
- if user and user.active:
233
- perms = user.get_perms()
234
- if "admin" in perms: ...
235
- ```
236
-
237
- ## f-strings (Python 3.6+)
238
-
239
- Only use `.format()` or `%` for legacy code.
240
-
241
- ```python
242
- # Good
243
- msg = f"User {user.name} (id={user.id}) logged in at {when:%Y-%m-%d %H:%M}"
244
-
245
- # Also good: f-string expressions
246
- msg = f"Total: ${sum(o.amount for o in orders):,.2f}"
247
-
248
- # Python 3.8+: self-documenting expressions with =
249
- msg = f"{x=}, {y=}" # => "x=5, y=10"
250
-
251
- # Python 3.12+: f-strings accept any quotes, backslashes, and multiline
252
- msg = f"path: {Path('a') / 'b'}, lines:\n{"\n".join(items)}"
253
-
254
- # Bad
255
- msg = "User {} (id={}) logged in at {}".format(user.name, user.id, when)
256
- msg = "User %s (id=%d) logged in at %s" % (user.name, user.id, when)
257
- ```
258
-
259
- ## Forbidden patterns (auto-reject in code review)
260
-
261
- | Anti-pattern | Why bad | Fix |
262
- |---|---|---|
263
- | `def f(x=[])` | Mutable default shared across calls | `def f(x=None): x = x or []` |
264
- | `except:` (bare) | Catches SystemExit, KeyboardInterrupt | `except SomeError:` |
265
- | `from m import *` | Pollutes namespace, hides origin | explicit imports |
266
- | `global x` in functions | Hidden state | pass explicitly or use a class |
267
- | `type(x) == Foo` | Doesn't handle subclasses | `isinstance(x, Foo)` |
268
- | `if x == None` | Identity check, not equality | `if x is None` |
269
-
270
- ## Naming conventions (PEP 8)
271
-
272
- | Kind | Style | Example |
273
- |---|---|---|
274
- | Variables, functions | `snake_case` | `user_count`, `get_user()` |
275
- | Constants | `UPPER_SNAKE` | `MAX_RETRIES`, `DEFAULT_TIMEOUT` |
276
- | Classes | `PascalCase` | `UserService`, `HTTPClient` |
277
- | Private (intent) | `_leading_underscore` | `_internal_cache` |
278
- | Name mangling | `__double_leading` | `__private_attr` (use sparingly) |
279
- | Module, package | `snake_case` | `user_service.py`, `payment_gateway/` |
@@ -1,233 +0,0 @@
1
- # Python Packaging & Environments
2
-
3
- Modern Python packaging. Defaults: `pyproject.toml` + `uv` (or `pip` + `venv`). No `setup.py`, no `requirements.txt` pinning in libraries.
4
-
5
- ## Tool landscape (2024–2026)
6
-
7
- | Need | Tool | Notes |
8
- |---|---|---|
9
- | Env + lockfile + installer | **`uv`** | Fastest; Rust-based; drop-in for pip/venv/pip-tools/poetry |
10
- | Traditional installer | `pip` | Still the universal fallback |
11
- | Env isolation only | `venv` (stdlib) | Zero-dependency; fine for simple cases |
12
- | Project manager (alt) | `poetry`, `hatch`, `pdm` | Mature; pick one per project, don't mix |
13
- | Build backend | `hatchling`, `setuptools`, `flit-core`, `poetry-core` | Declared in `pyproject.toml` |
14
-
15
- Default recommendation: `uv` for new work. Its `pyproject.toml` is standard so projects stay portable.
16
-
17
- ## `pyproject.toml` — the one config file
18
-
19
- ```toml
20
- [project]
21
- name = "myapp"
22
- version = "0.1.0"
23
- description = "Short one-liner"
24
- readme = "README.md"
25
- requires-python = ">=3.11"
26
- license = { text = "MIT" }
27
- authors = [{ name = "Coral", email = "coral@example.com" }]
28
- dependencies = [
29
- "httpx>=0.27",
30
- "pydantic>=2.5",
31
- ]
32
-
33
- [project.optional-dependencies]
34
- dev = [
35
- "pytest>=8.0",
36
- "pytest-cov",
37
- "mypy",
38
- "ruff",
39
- ]
40
-
41
- [project.scripts]
42
- myapp = "myapp.cli:main" # creates a `myapp` executable on install
43
-
44
- [build-system]
45
- requires = ["hatchling"]
46
- build-backend = "hatchling.build"
47
-
48
- [tool.hatch.build.targets.wheel]
49
- packages = ["src/myapp"]
50
-
51
- [tool.ruff]
52
- line-length = 100
53
- target-version = "py311"
54
-
55
- [tool.mypy]
56
- strict = true
57
- python_version = "3.11"
58
- ```
59
-
60
- ## Project layout — `src/` over flat
61
-
62
- Keep source under `src/` so `import myapp` during tests uses the installed package, not the working directory. Catches "works locally, broken when installed" bugs early.
63
-
64
- ```
65
- myapp/
66
- ├── pyproject.toml
67
- ├── README.md
68
- ├── src/
69
- │ └── myapp/
70
- │ ├── __init__.py
71
- │ ├── cli.py
72
- │ └── services/
73
- │ └── user.py
74
- └── tests/
75
- ├── conftest.py
76
- └── test_user.py
77
- ```
78
-
79
- Avoid: top-level `myapp/` mixed with `tests/` — `sys.path` tricks mask import bugs.
80
-
81
- ## `uv` — day-to-day commands
82
-
83
- ```bash
84
- # Create project
85
- uv init myapp --package
86
-
87
- # Add / remove dependencies (updates pyproject.toml + uv.lock)
88
- uv add httpx pydantic
89
- uv add --dev pytest pytest-cov mypy ruff
90
- uv remove requests
91
-
92
- # Install everything (reproducible from lockfile)
93
- uv sync
94
-
95
- # Run anything inside the env
96
- uv run pytest
97
- uv run python -m myapp
98
- uv run ruff check src/
99
-
100
- # Pin Python version
101
- uv python pin 3.12
102
-
103
- # Build a wheel / sdist
104
- uv build
105
-
106
- # Upgrade dependencies
107
- uv lock --upgrade
108
- uv lock --upgrade-package httpx
109
- ```
110
-
111
- Commit `uv.lock` for **applications**. For **libraries**, don't commit it — let downstreams resolve against their own constraints.
112
-
113
- ## `pip` + `venv` — classic workflow
114
-
115
- ```bash
116
- python -m venv .venv
117
- source .venv/bin/activate # Windows: .venv\Scripts\activate
118
-
119
- pip install -e '.[dev]' # editable install with dev extras
120
- pip install --upgrade pip
121
-
122
- # Freeze what's installed (for apps, not libs)
123
- pip freeze > requirements.lock.txt
124
- pip install -r requirements.lock.txt
125
- ```
126
-
127
- Never `pip install` into the system Python. Use a venv per project.
128
-
129
- ## Dependency specification
130
-
131
- ```toml
132
- [project]
133
- dependencies = [
134
- "httpx>=0.27,<1.0", # library: allow a compatible range
135
- "pydantic~=2.5", # ~= means >=2.5,<3.0
136
- "requests; python_version<'3.11'", # conditional
137
- "rich[jupyter]>=13.0", # with extras
138
- ]
139
- ```
140
-
141
- | Specifier | Meaning | Use for |
142
- |---|---|---|
143
- | `pkg>=X.Y` | at least this version | libraries |
144
- | `pkg~=X.Y` | compatible release (=X.*, <X+1) | common default |
145
- | `pkg==X.Y.Z` | exact pin | applications with lockfile |
146
- | `pkg>=A,<B` | explicit range | upper bound on known-breaking releases |
147
-
148
- **Libraries**: loose constraints (`>=X`). **Applications**: tight lockfile (`uv.lock` or `requirements.lock.txt`).
149
-
150
- ## Version management
151
-
152
- Single source of truth for the version. Don't duplicate in `__init__.py`.
153
-
154
- ```toml
155
- # pyproject.toml
156
- [project]
157
- dynamic = ["version"]
158
-
159
- [tool.hatch.version]
160
- path = "src/myapp/__about__.py"
161
- ```
162
-
163
- ```python
164
- # src/myapp/__about__.py
165
- __version__ = "0.1.0"
166
-
167
- # src/myapp/__init__.py
168
- from myapp.__about__ import __version__
169
- __all__ = ["__version__"]
170
- ```
171
-
172
- ## Python version management
173
-
174
- `pyenv` for installing Python versions; `uv python` integrates this. Project-level pin:
175
-
176
- ```bash
177
- uv python pin 3.12 # writes .python-version
178
- ```
179
-
180
- CI: install the exact version from `.python-version` so prod and dev match.
181
-
182
- ## Publishing to PyPI
183
-
184
- ```bash
185
- uv build
186
- uv publish # uses PyPI API token from UV_PUBLISH_TOKEN
187
-
188
- # Or with twine
189
- python -m build
190
- twine upload dist/*
191
- ```
192
-
193
- Pre-flight checks:
194
- - `README.md` renders on PyPI (test with `twine check dist/*`)
195
- - Version bumped
196
- - `CHANGELOG.md` updated
197
- - Tag release in git: `git tag v0.1.0 && git push --tags`
198
-
199
- ## Private packages
200
-
201
- ```toml
202
- [tool.uv.sources]
203
- mycompany-lib = { git = "ssh://git@github.com/mycompany/lib.git", tag = "v1.2.0" }
204
- internal = { path = "../internal", editable = true }
205
- ```
206
-
207
- Or via `--extra-index-url` for private PyPI indexes.
208
-
209
- ## `__init__.py` — keep it minimal
210
-
211
- ```python
212
- # src/myapp/__init__.py
213
- """Public API for myapp."""
214
- from myapp.services import UserService
215
- from myapp.models import User
216
-
217
- __all__ = ["UserService", "User"]
218
- ```
219
-
220
- Don't run heavy init logic at import time — it slows down `import myapp` for every caller.
221
-
222
- ## Common mistakes
223
-
224
- | Mistake | Fix |
225
- |---|---|
226
- | `setup.py` in a new project | Use `pyproject.toml` only |
227
- | Committing `venv/` or `.venv/` | Add to `.gitignore` |
228
- | `pip install` without a venv | Always use `uv` or `venv` |
229
- | `requirements.txt` in a library | Declare in `pyproject.toml`; let consumers pin |
230
- | Version duplicated in 3 files | Use `dynamic = ["version"]` |
231
- | `from myapp import *` in `__init__.py` | Explicit exports via `__all__` |
232
- | Flat layout causing import surprises | Use `src/` layout |
233
- | Running tests with local `myapp/` shadowing the installed one | `pip install -e '.[dev]'`, then `pytest` |