cokit-cli 1.0.7 → 1.0.9

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 (1163) hide show
  1. package/.vscode/settings.json +70 -70
  2. package/AGENTS.md +103 -103
  3. package/FAQ.md +101 -102
  4. package/INIT.md +154 -154
  5. package/LICENSE +32 -32
  6. package/QUICK-START.md +37 -37
  7. package/README.FLOW.md +237 -237
  8. package/README.md +92 -171
  9. package/agents/brainstormer.agent.md +71 -71
  10. package/agents/code-reviewer.agent.md +136 -128
  11. package/agents/debugger.agent.md +128 -128
  12. package/agents/docs-manager.agent.md +121 -121
  13. package/agents/git-manager.agent.md +390 -390
  14. package/agents/planner.agent.md +94 -94
  15. package/agents/researcher.agent.md +32 -32
  16. package/agents/scout.agent.md +107 -107
  17. package/agents/tester.agent.md +117 -106
  18. package/bin/cokit.js +4 -4
  19. package/changelogs/1.0.8.md +77 -0
  20. package/changelogs/1.0.9.md +173 -0
  21. package/collections/ck-core.collection.yml +28 -30
  22. package/collections/ck-development-rules.collection.yml +18 -18
  23. package/collections/ck-documentation.collection.yml +14 -18
  24. package/collections/ck-git-workflow.collection.yml +12 -18
  25. package/collections/ck-orchestration.collection.yml +16 -22
  26. package/docs/README.md +108 -85
  27. package/docs/cokit-comprehensive-mapping-guide.md +374 -937
  28. package/docs/cokit-slides.md +222 -205
  29. package/docs/cokit-team-presentation.md +378 -319
  30. package/docs/copilot-processing-flow.md +212 -128
  31. package/docs/migration-guide.md +133 -120
  32. package/docs/project-roadmap.md +280 -257
  33. package/instructions/ck-backend.instructions.md +48 -48
  34. package/instructions/ck-development.instructions.md +54 -54
  35. package/instructions/ck-frontend.instructions.md +44 -44
  36. package/instructions/ck-research.instructions.md +167 -167
  37. package/instructions/ck-testing.instructions.md +36 -36
  38. package/package.json +42 -42
  39. package/plans/reports/docs-manager-260120-0854-documentation-update.md +323 -0
  40. package/prompts/ck-ask.prompt.md +57 -57
  41. package/prompts/ck-bootstrap.prompt.md +136 -136
  42. package/prompts/ck-brainstorm.prompt.md +105 -105
  43. package/prompts/ck-ck-help.prompt.md +112 -114
  44. package/prompts/ck-code.prompt.md +178 -178
  45. package/prompts/ck-cook.prompt.md +97 -97
  46. package/prompts/ck-debug.prompt.md +14 -14
  47. package/prompts/ck-docs.prompt.md +51 -0
  48. package/prompts/ck-fix.prompt.md +44 -44
  49. package/prompts/ck-git.prompt.md +79 -0
  50. package/prompts/ck-plan.prompt.md +80 -80
  51. package/prompts/ck-test.prompt.md +10 -10
  52. package/repomix-output.xml +40725 -0
  53. package/rules/README.agents.md +55 -55
  54. package/rules/README.collections.md +78 -78
  55. package/rules/README.copilot-instructions.md +66 -66
  56. package/rules/README.instructions.md +73 -73
  57. package/rules/README.md +39 -39
  58. package/rules/README.prompts.md +76 -76
  59. package/rules/README.skills.md +71 -71
  60. package/skills/ck-backend-development/SKILL.md +96 -93
  61. package/skills/ck-backend-development/references/backend-api-design.md +495 -495
  62. package/skills/ck-backend-development/references/backend-architecture.md +454 -454
  63. package/skills/ck-backend-development/references/backend-authentication.md +338 -338
  64. package/skills/ck-backend-development/references/backend-code-quality.md +659 -659
  65. package/skills/ck-backend-development/references/backend-debugging.md +904 -904
  66. package/skills/ck-backend-development/references/backend-devops.md +494 -494
  67. package/skills/ck-backend-development/references/backend-mindset.md +387 -387
  68. package/skills/ck-backend-development/references/backend-performance.md +397 -397
  69. package/skills/ck-backend-development/references/backend-security.md +290 -290
  70. package/skills/ck-backend-development/references/backend-technologies.md +290 -256
  71. package/skills/ck-backend-development/references/backend-testing.md +561 -429
  72. package/skills/ck-code-review/SKILL.md +143 -143
  73. package/skills/ck-code-review/references/code-review-reception.md +208 -208
  74. package/skills/ck-code-review/references/requesting-code-review.md +104 -104
  75. package/skills/ck-code-review/references/verification-before-completion.md +138 -138
  76. package/skills/ck-debugging/SKILL.md +82 -82
  77. package/skills/ck-debugging/references/defense-in-depth.md +124 -124
  78. package/skills/ck-debugging/references/root-cause-tracing.md +122 -122
  79. package/skills/ck-debugging/references/systematic-debugging.md +102 -102
  80. package/skills/ck-debugging/references/verification.md +123 -123
  81. package/skills/ck-debugging/scripts/find-polluter.sh +63 -63
  82. package/skills/ck-debugging/scripts/find-polluter.test.md +102 -102
  83. package/skills/ck-frontend-development/SKILL.md +399 -399
  84. package/skills/ck-frontend-development/resources/common-patterns.md +330 -330
  85. package/skills/ck-frontend-development/resources/complete-examples.md +871 -871
  86. package/skills/ck-frontend-development/resources/component-patterns.md +501 -501
  87. package/skills/ck-frontend-development/resources/data-fetching.md +766 -766
  88. package/skills/ck-frontend-development/resources/file-organization.md +501 -501
  89. package/skills/ck-frontend-development/resources/loading-and-error-states.md +500 -500
  90. package/skills/ck-frontend-development/resources/performance.md +405 -405
  91. package/skills/ck-frontend-development/resources/routing-guide.md +363 -363
  92. package/skills/ck-frontend-development/resources/styling-guide.md +427 -427
  93. package/skills/ck-frontend-development/resources/typescript-standards.md +417 -417
  94. package/skills/ck-planning/SKILL.md +112 -112
  95. package/skills/ck-planning/references/codebase-understanding.md +62 -62
  96. package/skills/ck-planning/references/output-standards.md +127 -127
  97. package/skills/ck-planning/references/plan-organization.md +150 -150
  98. package/skills/ck-planning/references/research-phase.md +49 -49
  99. package/skills/ck-planning/references/solution-design.md +63 -63
  100. package/skills/ck-problem-solving/SKILL.md +95 -95
  101. package/skills/ck-problem-solving/references/attribution.md +69 -69
  102. package/skills/ck-problem-solving/references/collision-zone-thinking.md +79 -79
  103. package/skills/ck-problem-solving/references/inversion-exercise.md +91 -91
  104. package/skills/ck-problem-solving/references/meta-pattern-recognition.md +87 -87
  105. package/skills/ck-problem-solving/references/scale-game.md +95 -95
  106. package/skills/ck-problem-solving/references/simplification-cascades.md +80 -80
  107. package/skills/ck-problem-solving/references/when-stuck.md +72 -72
  108. package/skills/ck-sequential-thinking/.env.example +8 -8
  109. package/skills/ck-sequential-thinking/README.md +183 -183
  110. package/skills/ck-sequential-thinking/SKILL.md +92 -92
  111. package/skills/ck-sequential-thinking/package.json +31 -31
  112. package/skills/ck-sequential-thinking/references/advanced-strategies.md +79 -79
  113. package/skills/ck-sequential-thinking/references/advanced-techniques.md +76 -76
  114. package/skills/ck-sequential-thinking/references/core-patterns.md +95 -95
  115. package/skills/ck-sequential-thinking/references/examples-api.md +88 -88
  116. package/skills/ck-sequential-thinking/references/examples-architecture.md +94 -94
  117. package/skills/ck-sequential-thinking/references/examples-debug.md +90 -90
  118. package/skills/ck-sequential-thinking/scripts/format-thought.js +159 -159
  119. package/skills/ck-sequential-thinking/scripts/process-thought.js +236 -236
  120. package/skills/ck-sequential-thinking/tests/format-thought.test.js +133 -133
  121. package/skills/ck-sequential-thinking/tests/process-thought.test.js +215 -215
  122. package/src/commands/add.js +93 -93
  123. package/src/commands/doctor.js +117 -117
  124. package/src/commands/init.js +183 -183
  125. package/src/commands/list.js +91 -91
  126. package/src/commands/update.js +22 -22
  127. package/src/index.js +35 -35
  128. package/src/utils/colors.js +14 -14
  129. package/src/utils/copy.js +122 -122
  130. package/src/utils/paths.js +66 -66
  131. package/src/utils/update-checker.js +126 -126
  132. package/templates/repo/.github/.cokit-version +4 -4
  133. package/templates/repo/.github/AGENTS.md +55 -55
  134. package/templates/repo/.github/agents/brainstormer.agent.md +71 -71
  135. package/templates/repo/.github/agents/code-reviewer.agent.md +136 -128
  136. package/templates/repo/.github/agents/debugger.agent.md +128 -128
  137. package/templates/repo/.github/agents/docs-manager.agent.md +121 -121
  138. package/templates/repo/.github/agents/git-manager.agent.md +390 -390
  139. package/templates/repo/.github/agents/planner.agent.md +94 -94
  140. package/templates/repo/.github/agents/researcher.agent.md +32 -32
  141. package/templates/repo/.github/agents/scout.agent.md +107 -107
  142. package/templates/repo/.github/agents/tester.agent.md +117 -106
  143. package/templates/repo/.github/collections/ck-core.collection.yml +28 -30
  144. package/templates/repo/.github/collections/ck-development-rules.collection.yml +18 -18
  145. package/templates/repo/.github/collections/ck-documentation.collection.yml +14 -18
  146. package/templates/repo/.github/collections/ck-git-workflow.collection.yml +12 -18
  147. package/templates/repo/.github/collections/ck-orchestration.collection.yml +16 -22
  148. package/templates/repo/.github/copilot-instructions.md +45 -45
  149. package/templates/repo/.github/instructions/ck-backend.instructions.md +48 -48
  150. package/templates/repo/.github/instructions/ck-development.instructions.md +54 -54
  151. package/templates/repo/.github/instructions/ck-frontend.instructions.md +44 -44
  152. package/templates/repo/.github/instructions/ck-research.instructions.md +167 -167
  153. package/templates/repo/.github/instructions/ck-testing.instructions.md +36 -36
  154. package/templates/repo/.github/prompts/ck-ask.prompt.md +57 -57
  155. package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +136 -136
  156. package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +105 -105
  157. package/templates/repo/.github/prompts/ck-ck-help.prompt.md +112 -114
  158. package/templates/repo/.github/prompts/ck-code.prompt.md +178 -178
  159. package/templates/repo/.github/prompts/ck-cook.prompt.md +97 -97
  160. package/templates/repo/.github/prompts/ck-debug.prompt.md +14 -14
  161. package/templates/repo/.github/prompts/ck-docs.prompt.md +51 -0
  162. package/templates/repo/.github/prompts/ck-fix.prompt.md +44 -44
  163. package/templates/repo/.github/prompts/ck-git.prompt.md +79 -0
  164. package/templates/repo/.github/prompts/ck-plan.prompt.md +80 -80
  165. package/templates/repo/.github/prompts/ck-test.prompt.md +10 -10
  166. package/templates/repo/.github/skills/ck-backend-development/SKILL.md +96 -93
  167. package/templates/repo/.github/skills/ck-backend-development/references/backend-api-design.md +495 -495
  168. package/templates/repo/.github/skills/ck-backend-development/references/backend-architecture.md +454 -454
  169. package/templates/repo/.github/skills/ck-backend-development/references/backend-authentication.md +338 -338
  170. package/templates/repo/.github/skills/ck-backend-development/references/backend-code-quality.md +659 -659
  171. package/templates/repo/.github/skills/ck-backend-development/references/backend-debugging.md +904 -904
  172. package/templates/repo/.github/skills/ck-backend-development/references/backend-devops.md +494 -494
  173. package/templates/repo/.github/skills/ck-backend-development/references/backend-mindset.md +387 -387
  174. package/templates/repo/.github/skills/ck-backend-development/references/backend-performance.md +397 -397
  175. package/templates/repo/.github/skills/ck-backend-development/references/backend-security.md +290 -290
  176. package/templates/repo/.github/skills/ck-backend-development/references/backend-technologies.md +290 -256
  177. package/templates/repo/.github/skills/ck-backend-development/references/backend-testing.md +561 -429
  178. package/templates/repo/.github/skills/ck-code-review/SKILL.md +143 -143
  179. package/templates/repo/.github/skills/ck-code-review/references/code-review-reception.md +208 -208
  180. package/templates/repo/.github/skills/ck-code-review/references/requesting-code-review.md +104 -104
  181. package/templates/repo/.github/skills/ck-code-review/references/verification-before-completion.md +138 -138
  182. package/templates/repo/.github/skills/ck-debugging/SKILL.md +82 -82
  183. package/templates/repo/.github/skills/ck-debugging/references/defense-in-depth.md +124 -124
  184. package/templates/repo/.github/skills/ck-debugging/references/root-cause-tracing.md +122 -122
  185. package/templates/repo/.github/skills/ck-debugging/references/systematic-debugging.md +102 -102
  186. package/templates/repo/.github/skills/ck-debugging/references/verification.md +123 -123
  187. package/templates/repo/.github/skills/ck-debugging/scripts/find-polluter.sh +63 -63
  188. package/templates/repo/.github/skills/ck-debugging/scripts/find-polluter.test.md +102 -102
  189. package/templates/repo/.github/skills/ck-frontend-development/SKILL.md +399 -399
  190. package/templates/repo/.github/skills/ck-frontend-development/resources/common-patterns.md +330 -330
  191. package/templates/repo/.github/skills/ck-frontend-development/resources/complete-examples.md +871 -871
  192. package/templates/repo/.github/skills/ck-frontend-development/resources/component-patterns.md +501 -501
  193. package/templates/repo/.github/skills/ck-frontend-development/resources/data-fetching.md +766 -766
  194. package/templates/repo/.github/skills/ck-frontend-development/resources/file-organization.md +501 -501
  195. package/templates/repo/.github/skills/ck-frontend-development/resources/loading-and-error-states.md +500 -500
  196. package/templates/repo/.github/skills/ck-frontend-development/resources/performance.md +405 -405
  197. package/templates/repo/.github/skills/ck-frontend-development/resources/routing-guide.md +363 -363
  198. package/templates/repo/.github/skills/ck-frontend-development/resources/styling-guide.md +427 -427
  199. package/templates/repo/.github/skills/ck-frontend-development/resources/typescript-standards.md +417 -417
  200. package/templates/repo/.github/skills/ck-planning/SKILL.md +112 -112
  201. package/templates/repo/.github/skills/ck-planning/references/codebase-understanding.md +62 -62
  202. package/templates/repo/.github/skills/ck-planning/references/output-standards.md +127 -127
  203. package/templates/repo/.github/skills/ck-planning/references/plan-organization.md +150 -150
  204. package/templates/repo/.github/skills/ck-planning/references/research-phase.md +49 -49
  205. package/templates/repo/.github/skills/ck-planning/references/solution-design.md +63 -63
  206. package/templates/repo/.github/skills/ck-problem-solving/SKILL.md +95 -95
  207. package/templates/repo/.github/skills/ck-problem-solving/references/attribution.md +69 -69
  208. package/templates/repo/.github/skills/ck-problem-solving/references/collision-zone-thinking.md +79 -79
  209. package/templates/repo/.github/skills/ck-problem-solving/references/inversion-exercise.md +91 -91
  210. package/templates/repo/.github/skills/ck-problem-solving/references/meta-pattern-recognition.md +87 -87
  211. package/templates/repo/.github/skills/ck-problem-solving/references/scale-game.md +95 -95
  212. package/templates/repo/.github/skills/ck-problem-solving/references/simplification-cascades.md +80 -80
  213. package/templates/repo/.github/skills/ck-problem-solving/references/when-stuck.md +72 -72
  214. package/templates/repo/.github/skills/ck-sequential-thinking/.env.example +8 -8
  215. package/templates/repo/.github/skills/ck-sequential-thinking/README.md +183 -183
  216. package/templates/repo/.github/skills/ck-sequential-thinking/SKILL.md +92 -92
  217. package/templates/repo/.github/skills/ck-sequential-thinking/package.json +31 -31
  218. package/templates/repo/.github/skills/ck-sequential-thinking/references/advanced-strategies.md +79 -79
  219. package/templates/repo/.github/skills/ck-sequential-thinking/references/advanced-techniques.md +76 -76
  220. package/templates/repo/.github/skills/ck-sequential-thinking/references/core-patterns.md +95 -95
  221. package/templates/repo/.github/skills/ck-sequential-thinking/references/examples-api.md +88 -88
  222. package/templates/repo/.github/skills/ck-sequential-thinking/references/examples-architecture.md +94 -94
  223. package/templates/repo/.github/skills/ck-sequential-thinking/references/examples-debug.md +90 -90
  224. package/templates/repo/.github/skills/ck-sequential-thinking/scripts/format-thought.js +159 -159
  225. package/templates/repo/.github/skills/ck-sequential-thinking/scripts/process-thought.js +236 -236
  226. package/templates/repo/.github/skills/ck-sequential-thinking/tests/format-thought.test.js +133 -133
  227. package/templates/repo/.github/skills/ck-sequential-thinking/tests/process-thought.test.js +215 -215
  228. package/templates/repo/.vscode/settings.json +70 -70
  229. package/agents/database-admin.agent.md +0 -91
  230. package/agents/fullstack-developer.agent.md +0 -96
  231. package/agents/mcp-manager.agent.md +0 -93
  232. package/agents/project-manager.agent.md +0 -124
  233. package/agents/scout-external.agent.md +0 -141
  234. package/agents/ui-ux-designer.agent.md +0 -225
  235. package/collections/ck-ui-design.collection.yml +0 -18
  236. package/instructions/ck-frontend-design-pro.instructions.md +0 -58
  237. package/instructions/ck-google-adk-python.instructions.md +0 -242
  238. package/plans/260106-1102-cokit-implementation/phases/phase-01-cli-tool.md +0 -151
  239. package/plans/260106-1102-cokit-implementation/phases/phase-02-repo-level-templates.md +0 -198
  240. package/plans/260106-1102-cokit-implementation/phases/phase-03-user-level-skills.md +0 -219
  241. package/plans/260106-1102-cokit-implementation/phases/phase-04-prompt-files.md +0 -328
  242. package/plans/260106-1102-cokit-implementation/phases/phase-05-documentation.md +0 -166
  243. package/plans/260106-1102-cokit-implementation/plan.md +0 -130
  244. package/plans/260106-1102-cokit-implementation/research/researcher-01-copilot-skills-spec.md +0 -182
  245. package/plans/260106-1102-cokit-implementation/research/researcher-02-copilot-instructions-prompts.md +0 -201
  246. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-01-restructure-folders.md +0 -183
  247. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-02-convert-agents.md +0 -206
  248. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-03-convert-commands-to-prompts.md +0 -284
  249. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-04-convert-skills-to-instructions.md +0 -349
  250. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-05-create-collections.md +0 -320
  251. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-06-update-cli-build-scripts.md +0 -450
  252. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/phase-07-update-documentation.md +0 -407
  253. package/plans/260108-0924-rebuild-cokit-awesome-copilot-format/plan.md +0 -136
  254. package/plans/reports/code-reviewer-260106-1718-phase2-repo-templates.md +0 -184
  255. package/plans/reports/code-reviewer-260106-1728-phase3-review.md +0 -486
  256. package/plans/reports/code-reviewer-260106-1742-phase4-prompts.md +0 -235
  257. package/plans/reports/code-reviewer-260106-1753-phase5-docs.md +0 -275
  258. package/plans/reports/docs-manager-260106-1217-phase1-completion.md +0 -45
  259. package/plans/reports/docs-manager-260106-1734-phase3-skills.md +0 -108
  260. package/plans/reports/docs-manager-260106-1746-phase4-prompt-files.md +0 -75
  261. package/plans/reports/project-manager-260106-1734-SUMMARY.md +0 -354
  262. package/plans/reports/project-manager-260106-1734-phase3-completion.md +0 -257
  263. package/plans/reports/project-manager-260106-1734-phase3-to-phase4-transition.md +0 -274
  264. package/plans/reports/project-manager-260106-1734-phase4-kickoff.md +0 -343
  265. package/plans/reports/project-manager-260106-1734-project-status.md +0 -355
  266. package/plans/reports/project-manager-260106-1746-phase4-completion.md +0 -249
  267. package/plans/reports/project-manager-260106-1746-phase4-deliverables.md +0 -350
  268. package/plans/reports/project-manager-260106-1804-project-complete.md +0 -297
  269. package/plans/reports/tester-260106-1717-phase2-templates.md +0 -216
  270. package/plans/reports/tester-260106-1726-phase3-user-skills.md +0 -256
  271. package/plans/reports/tester-260106-1741-phase4-prompts.md +0 -202
  272. package/plans/reports/tester-260106-1751-phase5-docs.md +0 -301
  273. package/prompts/ck-bootstrap-auto-fast.prompt.md +0 -108
  274. package/prompts/ck-bootstrap-auto-parallel.prompt.md +0 -66
  275. package/prompts/ck-bootstrap-auto.prompt.md +0 -114
  276. package/prompts/ck-code-auto.prompt.md +0 -172
  277. package/prompts/ck-code-no-test.prompt.md +0 -160
  278. package/prompts/ck-code-parallel.prompt.md +0 -57
  279. package/prompts/ck-coding-level.prompt.md +0 -54
  280. package/prompts/ck-cook-auto-fast.prompt.md +0 -26
  281. package/prompts/ck-cook-auto-parallel.prompt.md +0 -50
  282. package/prompts/ck-cook-auto.prompt.md +0 -17
  283. package/prompts/ck-design-3d.prompt.md +0 -84
  284. package/prompts/ck-design-describe.prompt.md +0 -24
  285. package/prompts/ck-design-fast.prompt.md +0 -32
  286. package/prompts/ck-design-good.prompt.md +0 -36
  287. package/prompts/ck-design-screenshot.prompt.md +0 -35
  288. package/prompts/ck-design-video.prompt.md +0 -35
  289. package/prompts/ck-docs-init.prompt.md +0 -27
  290. package/prompts/ck-docs-summarize.prompt.md +0 -23
  291. package/prompts/ck-docs-update.prompt.md +0 -36
  292. package/prompts/ck-fix-ci.prompt.md +0 -18
  293. package/prompts/ck-fix-fast.prompt.md +0 -18
  294. package/prompts/ck-fix-hard.prompt.md +0 -36
  295. package/prompts/ck-fix-logs.prompt.md +0 -27
  296. package/prompts/ck-fix-parallel.prompt.md +0 -54
  297. package/prompts/ck-fix-test.prompt.md +0 -19
  298. package/prompts/ck-fix-types.prompt.md +0 -11
  299. package/prompts/ck-fix-ui.prompt.md +0 -49
  300. package/prompts/ck-git-cm.prompt.md +0 -8
  301. package/prompts/ck-git-cp.prompt.md +0 -7
  302. package/prompts/ck-git-merge.prompt.md +0 -41
  303. package/prompts/ck-git-pr.prompt.md +0 -49
  304. package/prompts/ck-kanban.prompt.md +0 -77
  305. package/prompts/ck-plan-archive.prompt.md +0 -57
  306. package/prompts/ck-plan-ci.prompt.md +0 -35
  307. package/prompts/ck-plan-cro.prompt.md +0 -66
  308. package/prompts/ck-plan-fast.prompt.md +0 -103
  309. package/prompts/ck-plan-hard.prompt.md +0 -125
  310. package/prompts/ck-plan-parallel.prompt.md +0 -159
  311. package/prompts/ck-plan-two.prompt.md +0 -78
  312. package/prompts/ck-plan-validate.prompt.md +0 -117
  313. package/prompts/ck-preview.prompt.md +0 -65
  314. package/prompts/ck-scout-ext.prompt.md +0 -35
  315. package/prompts/ck-skill-add.prompt.md +0 -36
  316. package/prompts/ck-skill-create.prompt.md +0 -29
  317. package/prompts/ck-skill-fix-logs.prompt.md +0 -22
  318. package/prompts/ck-skill-optimize-auto.prompt.md +0 -25
  319. package/prompts/ck-skill-optimize.prompt.md +0 -34
  320. package/prompts/ck-skill-plan.prompt.md +0 -46
  321. package/prompts/ck-test-ui.prompt.md +0 -92
  322. package/prompts/ck-use-mcp.prompt.md +0 -27
  323. package/prompts/ck-watzup.prompt.md +0 -11
  324. package/prompts/ck-worktree.prompt.md +0 -127
  325. package/skills/ck-ai-artist/SKILL.md +0 -73
  326. package/skills/ck-ai-artist/references/advanced-techniques.md +0 -184
  327. package/skills/ck-ai-artist/references/domain-code.md +0 -66
  328. package/skills/ck-ai-artist/references/domain-data.md +0 -72
  329. package/skills/ck-ai-artist/references/domain-marketing.md +0 -66
  330. package/skills/ck-ai-artist/references/domain-patterns.md +0 -33
  331. package/skills/ck-ai-artist/references/domain-writing.md +0 -68
  332. package/skills/ck-ai-artist/references/image-prompting.md +0 -141
  333. package/skills/ck-ai-artist/references/llm-prompting.md +0 -165
  334. package/skills/ck-ai-artist/references/nano-banana.md +0 -59
  335. package/skills/ck-ai-artist/references/reasoning-techniques.md +0 -201
  336. package/skills/ck-better-auth/SKILL.md +0 -202
  337. package/skills/ck-better-auth/references/advanced-features.md +0 -553
  338. package/skills/ck-better-auth/references/database-integration.md +0 -577
  339. package/skills/ck-better-auth/references/email-password-auth.md +0 -416
  340. package/skills/ck-better-auth/references/oauth-providers.md +0 -430
  341. package/skills/ck-better-auth/scripts/.coverage +0 -0
  342. package/skills/ck-better-auth/scripts/better_auth_init.py +0 -521
  343. package/skills/ck-better-auth/scripts/requirements.txt +0 -15
  344. package/skills/ck-better-auth/scripts/tests/.coverage +0 -0
  345. package/skills/ck-better-auth/scripts/tests/test_better_auth_init.py +0 -421
  346. package/skills/ck-chrome-devtools/SKILL.md +0 -470
  347. package/skills/ck-chrome-devtools/references/cdp-domains.md +0 -694
  348. package/skills/ck-chrome-devtools/references/performance-guide.md +0 -940
  349. package/skills/ck-chrome-devtools/references/puppeteer-reference.md +0 -953
  350. package/skills/ck-chrome-devtools/scripts/README.md +0 -272
  351. package/skills/ck-chrome-devtools/scripts/__tests__/selector.test.js +0 -210
  352. package/skills/ck-chrome-devtools/scripts/aria-snapshot.js +0 -362
  353. package/skills/ck-chrome-devtools/scripts/click.js +0 -83
  354. package/skills/ck-chrome-devtools/scripts/console.js +0 -79
  355. package/skills/ck-chrome-devtools/scripts/evaluate.js +0 -53
  356. package/skills/ck-chrome-devtools/scripts/fill.js +0 -76
  357. package/skills/ck-chrome-devtools/scripts/inject-auth.js +0 -229
  358. package/skills/ck-chrome-devtools/scripts/install-deps.sh +0 -181
  359. package/skills/ck-chrome-devtools/scripts/install.sh +0 -83
  360. package/skills/ck-chrome-devtools/scripts/lib/browser.js +0 -318
  361. package/skills/ck-chrome-devtools/scripts/lib/selector.js +0 -178
  362. package/skills/ck-chrome-devtools/scripts/navigate.js +0 -54
  363. package/skills/ck-chrome-devtools/scripts/network.js +0 -106
  364. package/skills/ck-chrome-devtools/scripts/package-lock.json +0 -1589
  365. package/skills/ck-chrome-devtools/scripts/package.json +0 -16
  366. package/skills/ck-chrome-devtools/scripts/performance.js +0 -149
  367. package/skills/ck-chrome-devtools/scripts/screenshot.js +0 -198
  368. package/skills/ck-chrome-devtools/scripts/select-ref.js +0 -131
  369. package/skills/ck-chrome-devtools/scripts/snapshot.js +0 -135
  370. package/skills/ck-databases/SKILL.md +0 -231
  371. package/skills/ck-databases/references/mongodb-aggregation.md +0 -447
  372. package/skills/ck-databases/references/mongodb-atlas.md +0 -465
  373. package/skills/ck-databases/references/mongodb-crud.md +0 -408
  374. package/skills/ck-databases/references/mongodb-indexing.md +0 -442
  375. package/skills/ck-databases/references/postgresql-administration.md +0 -594
  376. package/skills/ck-databases/references/postgresql-performance.md +0 -527
  377. package/skills/ck-databases/references/postgresql-psql-cli.md +0 -467
  378. package/skills/ck-databases/references/postgresql-queries.md +0 -475
  379. package/skills/ck-databases/scripts/.coverage +0 -0
  380. package/skills/ck-databases/scripts/db_backup.py +0 -502
  381. package/skills/ck-databases/scripts/db_migrate.py +0 -425
  382. package/skills/ck-databases/scripts/db_performance_check.py +0 -456
  383. package/skills/ck-databases/scripts/requirements.txt +0 -20
  384. package/skills/ck-databases/scripts/tests/coverage-db.json +0 -1
  385. package/skills/ck-databases/scripts/tests/requirements.txt +0 -4
  386. package/skills/ck-databases/scripts/tests/test_db_backup.py +0 -340
  387. package/skills/ck-databases/scripts/tests/test_db_migrate.py +0 -277
  388. package/skills/ck-databases/scripts/tests/test_db_performance_check.py +0 -370
  389. package/skills/ck-devops/.env.example +0 -76
  390. package/skills/ck-devops/SKILL.md +0 -283
  391. package/skills/ck-devops/references/browser-rendering.md +0 -305
  392. package/skills/ck-devops/references/cloudflare-d1-kv.md +0 -123
  393. package/skills/ck-devops/references/cloudflare-platform.md +0 -271
  394. package/skills/ck-devops/references/cloudflare-r2-storage.md +0 -280
  395. package/skills/ck-devops/references/cloudflare-workers-advanced.md +0 -312
  396. package/skills/ck-devops/references/cloudflare-workers-apis.md +0 -309
  397. package/skills/ck-devops/references/cloudflare-workers-basics.md +0 -418
  398. package/skills/ck-devops/references/docker-basics.md +0 -297
  399. package/skills/ck-devops/references/docker-compose.md +0 -292
  400. package/skills/ck-devops/references/gcloud-platform.md +0 -297
  401. package/skills/ck-devops/references/gcloud-services.md +0 -304
  402. package/skills/ck-devops/scripts/cloudflare_deploy.py +0 -269
  403. package/skills/ck-devops/scripts/docker_optimize.py +0 -331
  404. package/skills/ck-devops/scripts/requirements.txt +0 -20
  405. package/skills/ck-devops/scripts/tests/requirements.txt +0 -3
  406. package/skills/ck-devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  407. package/skills/ck-devops/scripts/tests/test_docker_optimize.py +0 -436
  408. package/skills/ck-docs-seeker/.env.example +0 -15
  409. package/skills/ck-docs-seeker/SKILL.md +0 -96
  410. package/skills/ck-docs-seeker/package.json +0 -25
  411. package/skills/ck-docs-seeker/references/advanced.md +0 -79
  412. package/skills/ck-docs-seeker/references/context7-patterns.md +0 -68
  413. package/skills/ck-docs-seeker/references/errors.md +0 -68
  414. package/skills/ck-docs-seeker/references/search-patterns.md +0 -93
  415. package/skills/ck-docs-seeker/references/source-evaluation.md +0 -77
  416. package/skills/ck-docs-seeker/scripts/analyze-llms-txt.js +0 -211
  417. package/skills/ck-docs-seeker/scripts/detect-topic.js +0 -172
  418. package/skills/ck-docs-seeker/scripts/fetch-docs.js +0 -213
  419. package/skills/ck-docs-seeker/scripts/tests/run-tests.js +0 -72
  420. package/skills/ck-docs-seeker/scripts/tests/test-analyze-llms.js +0 -119
  421. package/skills/ck-docs-seeker/scripts/tests/test-detect-topic.js +0 -112
  422. package/skills/ck-docs-seeker/scripts/tests/test-fetch-docs.js +0 -84
  423. package/skills/ck-docs-seeker/scripts/utils/env-loader.js +0 -94
  424. package/skills/ck-docs-seeker/workflows/library-search.md +0 -87
  425. package/skills/ck-docs-seeker/workflows/repo-analysis.md +0 -91
  426. package/skills/ck-docs-seeker/workflows/topic-search.md +0 -77
  427. package/skills/ck-frontend-design/SKILL.md +0 -79
  428. package/skills/ck-frontend-design/references/analysis-best-practices.md +0 -80
  429. package/skills/ck-frontend-design/references/analysis-prompts.md +0 -141
  430. package/skills/ck-frontend-design/references/analysis-techniques.md +0 -118
  431. package/skills/ck-frontend-design/references/animejs.md +0 -396
  432. package/skills/ck-frontend-design/references/design-extraction-overview.md +0 -71
  433. package/skills/ck-frontend-design/references/extraction-best-practices.md +0 -141
  434. package/skills/ck-frontend-design/references/extraction-output-templates.md +0 -162
  435. package/skills/ck-frontend-design/references/extraction-prompts.md +0 -127
  436. package/skills/ck-frontend-design/references/technical-accessibility.md +0 -119
  437. package/skills/ck-frontend-design/references/technical-best-practices.md +0 -97
  438. package/skills/ck-frontend-design/references/technical-optimization.md +0 -44
  439. package/skills/ck-frontend-design/references/technical-overview.md +0 -90
  440. package/skills/ck-frontend-design/references/technical-workflows.md +0 -150
  441. package/skills/ck-frontend-design/references/visual-analysis-overview.md +0 -95
  442. package/skills/ck-markdown-novel-viewer/SKILL.md +0 -190
  443. package/skills/ck-markdown-novel-viewer/assets/directory-browser.css +0 -215
  444. package/skills/ck-markdown-novel-viewer/assets/favicon.png +0 -0
  445. package/skills/ck-markdown-novel-viewer/assets/novel-theme.css +0 -818
  446. package/skills/ck-markdown-novel-viewer/assets/reader.js +0 -262
  447. package/skills/ck-markdown-novel-viewer/assets/template.html +0 -80
  448. package/skills/ck-markdown-novel-viewer/package.json +0 -15
  449. package/skills/ck-markdown-novel-viewer/scripts/lib/http-server.cjs +0 -434
  450. package/skills/ck-markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +0 -272
  451. package/skills/ck-markdown-novel-viewer/scripts/lib/plan-navigator.cjs +0 -509
  452. package/skills/ck-markdown-novel-viewer/scripts/lib/port-finder.cjs +0 -48
  453. package/skills/ck-markdown-novel-viewer/scripts/lib/process-mgr.cjs +0 -150
  454. package/skills/ck-markdown-novel-viewer/scripts/server.cjs +0 -411
  455. package/skills/ck-markdown-novel-viewer/scripts/tests/server.test.cjs +0 -283
  456. package/skills/ck-markdown-novel-viewer/tests/dashboard-assets.test.cjs +0 -340
  457. package/skills/ck-markdown-novel-viewer/tests/dashboard-renderer.test.cjs +0 -404
  458. package/skills/ck-markdown-novel-viewer/tests/http-server.test.cjs +0 -271
  459. package/skills/ck-markdown-novel-viewer/tests/run-tests.cjs +0 -51
  460. package/skills/ck-markdown-novel-viewer/tests/test-framework.cjs +0 -154
  461. package/skills/ck-markdown-novel-viewer/tests/verify-xss.cjs +0 -90
  462. package/skills/ck-mcp-builder/LICENSE.txt +0 -202
  463. package/skills/ck-mcp-builder/SKILL.md +0 -327
  464. package/skills/ck-mcp-builder/reference/evaluation.md +0 -602
  465. package/skills/ck-mcp-builder/reference/mcp_best_practices.md +0 -915
  466. package/skills/ck-mcp-builder/reference/node_mcp_server.md +0 -916
  467. package/skills/ck-mcp-builder/reference/python_mcp_server.md +0 -752
  468. package/skills/ck-mcp-builder/scripts/connections.py +0 -151
  469. package/skills/ck-mcp-builder/scripts/evaluation.py +0 -373
  470. package/skills/ck-mcp-builder/scripts/example_evaluation.xml +0 -22
  471. package/skills/ck-mcp-builder/scripts/requirements.txt +0 -2
  472. package/skills/ck-mcp-management/README.md +0 -219
  473. package/skills/ck-mcp-management/SKILL.md +0 -209
  474. package/skills/ck-mcp-management/assets/tools.json +0 -3146
  475. package/skills/ck-mcp-management/references/configuration.md +0 -114
  476. package/skills/ck-mcp-management/references/gemini-cli-integration.md +0 -215
  477. package/skills/ck-mcp-management/references/mcp-protocol.md +0 -116
  478. package/skills/ck-mcp-management/scripts/.env.example +0 -10
  479. package/skills/ck-mcp-management/scripts/cli.ts +0 -195
  480. package/skills/ck-mcp-management/scripts/dist/analyze-tools.js +0 -70
  481. package/skills/ck-mcp-management/scripts/dist/cli.js +0 -160
  482. package/skills/ck-mcp-management/scripts/dist/mcp-client.js +0 -183
  483. package/skills/ck-mcp-management/scripts/mcp-client.ts +0 -230
  484. package/skills/ck-mcp-management/scripts/package.json +0 -20
  485. package/skills/ck-mcp-management/scripts/tsconfig.json +0 -15
  486. package/skills/ck-media-processing/SKILL.md +0 -90
  487. package/skills/ck-media-processing/references/common-workflows.md +0 -132
  488. package/skills/ck-media-processing/references/ffmpeg-encoding.md +0 -358
  489. package/skills/ck-media-processing/references/ffmpeg-filters.md +0 -503
  490. package/skills/ck-media-processing/references/ffmpeg-streaming.md +0 -403
  491. package/skills/ck-media-processing/references/format-compatibility.md +0 -375
  492. package/skills/ck-media-processing/references/imagemagick-batch.md +0 -612
  493. package/skills/ck-media-processing/references/imagemagick-editing.md +0 -623
  494. package/skills/ck-media-processing/references/rmbg-background-removal.md +0 -66
  495. package/skills/ck-media-processing/references/troubleshooting.md +0 -109
  496. package/skills/ck-media-processing/scripts/README.md +0 -111
  497. package/skills/ck-media-processing/scripts/batch-remove-background.sh +0 -124
  498. package/skills/ck-media-processing/scripts/batch_resize.py +0 -342
  499. package/skills/ck-media-processing/scripts/media_convert.py +0 -311
  500. package/skills/ck-media-processing/scripts/remove-background.sh +0 -96
  501. package/skills/ck-media-processing/scripts/remove-bg-node.js +0 -158
  502. package/skills/ck-media-processing/scripts/requirements.txt +0 -24
  503. package/skills/ck-media-processing/scripts/tests/.coverage +0 -0
  504. package/skills/ck-media-processing/scripts/tests/requirements.txt +0 -2
  505. package/skills/ck-media-processing/scripts/tests/test_batch_resize.py +0 -372
  506. package/skills/ck-media-processing/scripts/tests/test_media_convert.py +0 -259
  507. package/skills/ck-media-processing/scripts/tests/test_video_optimize.py +0 -397
  508. package/skills/ck-media-processing/scripts/video_optimize.py +0 -414
  509. package/skills/ck-mobile-development/SKILL.md +0 -210
  510. package/skills/ck-mobile-development/references/mobile-android.md +0 -604
  511. package/skills/ck-mobile-development/references/mobile-best-practices.md +0 -545
  512. package/skills/ck-mobile-development/references/mobile-debugging.md +0 -1089
  513. package/skills/ck-mobile-development/references/mobile-frameworks.md +0 -465
  514. package/skills/ck-mobile-development/references/mobile-ios.md +0 -496
  515. package/skills/ck-mobile-development/references/mobile-mindset.md +0 -544
  516. package/skills/ck-payment-integration/README.md +0 -185
  517. package/skills/ck-payment-integration/SKILL.md +0 -116
  518. package/skills/ck-payment-integration/references/polar/benefits.md +0 -396
  519. package/skills/ck-payment-integration/references/polar/best-practices.md +0 -482
  520. package/skills/ck-payment-integration/references/polar/checkouts.md +0 -266
  521. package/skills/ck-payment-integration/references/polar/overview.md +0 -184
  522. package/skills/ck-payment-integration/references/polar/products.md +0 -244
  523. package/skills/ck-payment-integration/references/polar/sdk.md +0 -436
  524. package/skills/ck-payment-integration/references/polar/subscriptions.md +0 -340
  525. package/skills/ck-payment-integration/references/polar/webhooks.md +0 -405
  526. package/skills/ck-payment-integration/references/sepay/api.md +0 -140
  527. package/skills/ck-payment-integration/references/sepay/best-practices.md +0 -337
  528. package/skills/ck-payment-integration/references/sepay/overview.md +0 -138
  529. package/skills/ck-payment-integration/references/sepay/qr-codes.md +0 -228
  530. package/skills/ck-payment-integration/references/sepay/sdk.md +0 -213
  531. package/skills/ck-payment-integration/references/sepay/webhooks.md +0 -208
  532. package/skills/ck-payment-integration/scripts/.env.example +0 -20
  533. package/skills/ck-payment-integration/scripts/checkout-helper.js +0 -244
  534. package/skills/ck-payment-integration/scripts/package.json +0 -17
  535. package/skills/ck-payment-integration/scripts/polar-webhook-verify.js +0 -202
  536. package/skills/ck-payment-integration/scripts/sepay-webhook-verify.js +0 -193
  537. package/skills/ck-payment-integration/scripts/test-scripts.js +0 -237
  538. package/skills/ck-repomix/SKILL.md +0 -247
  539. package/skills/ck-repomix/references/configuration.md +0 -211
  540. package/skills/ck-repomix/references/usage-patterns.md +0 -232
  541. package/skills/ck-repomix/scripts/.coverage +0 -0
  542. package/skills/ck-repomix/scripts/README.md +0 -179
  543. package/skills/ck-repomix/scripts/repomix_batch.py +0 -455
  544. package/skills/ck-repomix/scripts/repos.example.json +0 -15
  545. package/skills/ck-repomix/scripts/requirements.txt +0 -15
  546. package/skills/ck-repomix/scripts/tests/test_repomix_batch.py +0 -531
  547. package/skills/ck-shopify/README.md +0 -66
  548. package/skills/ck-shopify/SKILL.md +0 -319
  549. package/skills/ck-shopify/references/app-development.md +0 -470
  550. package/skills/ck-shopify/references/extensions.md +0 -493
  551. package/skills/ck-shopify/references/themes.md +0 -498
  552. package/skills/ck-shopify/scripts/.coverage +0 -0
  553. package/skills/ck-shopify/scripts/requirements.txt +0 -19
  554. package/skills/ck-shopify/scripts/shopify_init.py +0 -423
  555. package/skills/ck-shopify/scripts/tests/.coverage +0 -0
  556. package/skills/ck-shopify/scripts/tests/test_shopify_init.py +0 -385
  557. package/skills/ck-skill-creator/LICENSE.txt +0 -202
  558. package/skills/ck-skill-creator/SKILL.md +0 -263
  559. package/skills/ck-skill-creator/scripts/init_skill.py +0 -303
  560. package/skills/ck-skill-creator/scripts/package_skill.py +0 -110
  561. package/skills/ck-skill-creator/scripts/quick_validate.py +0 -65
  562. package/skills/ck-threejs/SKILL.md +0 -87
  563. package/skills/ck-threejs/references/01-getting-started.md +0 -177
  564. package/skills/ck-threejs/references/02-loaders.md +0 -169
  565. package/skills/ck-threejs/references/03-textures.md +0 -170
  566. package/skills/ck-threejs/references/04-cameras.md +0 -195
  567. package/skills/ck-threejs/references/05-lights.md +0 -183
  568. package/skills/ck-threejs/references/06-animations.md +0 -214
  569. package/skills/ck-threejs/references/07-math.md +0 -260
  570. package/skills/ck-threejs/references/08-interaction.md +0 -267
  571. package/skills/ck-threejs/references/09-postprocessing.md +0 -240
  572. package/skills/ck-threejs/references/10-controls.md +0 -259
  573. package/skills/ck-threejs/references/11-materials-advanced.md +0 -270
  574. package/skills/ck-threejs/references/12-performance.md +0 -269
  575. package/skills/ck-threejs/references/13-node-materials.md +0 -298
  576. package/skills/ck-threejs/references/14-physics-vr.md +0 -304
  577. package/skills/ck-threejs/references/15-specialized-loaders.md +0 -333
  578. package/skills/ck-threejs/references/16-webgpu.md +0 -302
  579. package/skills/ck-ui-styling/LICENSE.txt +0 -202
  580. package/skills/ck-ui-styling/SKILL.md +0 -319
  581. package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  582. package/skills/ck-ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  583. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  584. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-OFL.txt +0 -93
  585. package/skills/ck-ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  586. package/skills/ck-ui-styling/canvas-fonts/Boldonse-OFL.txt +0 -93
  587. package/skills/ck-ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  588. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  589. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  590. package/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  591. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  592. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  593. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  594. package/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  595. package/skills/ck-ui-styling/canvas-fonts/DMMono-OFL.txt +0 -93
  596. package/skills/ck-ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  597. package/skills/ck-ui-styling/canvas-fonts/EricaOne-OFL.txt +0 -94
  598. package/skills/ck-ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  599. package/skills/ck-ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  600. package/skills/ck-ui-styling/canvas-fonts/GeistMono-OFL.txt +0 -93
  601. package/skills/ck-ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  602. package/skills/ck-ui-styling/canvas-fonts/Gloock-OFL.txt +0 -93
  603. package/skills/ck-ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  604. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  605. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  606. package/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  607. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  608. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  609. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  610. package/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  611. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  612. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  613. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  614. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  615. package/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  616. package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  617. package/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  618. package/skills/ck-ui-styling/canvas-fonts/Italiana-OFL.txt +0 -93
  619. package/skills/ck-ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  620. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  621. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  622. package/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  623. package/skills/ck-ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  624. package/skills/ck-ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  625. package/skills/ck-ui-styling/canvas-fonts/Jura-OFL.txt +0 -93
  626. package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  627. package/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  628. package/skills/ck-ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  629. package/skills/ck-ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  630. package/skills/ck-ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  631. package/skills/ck-ui-styling/canvas-fonts/Lora-OFL.txt +0 -93
  632. package/skills/ck-ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  633. package/skills/ck-ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  634. package/skills/ck-ui-styling/canvas-fonts/NationalPark-OFL.txt +0 -93
  635. package/skills/ck-ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  636. package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  637. package/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  638. package/skills/ck-ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  639. package/skills/ck-ui-styling/canvas-fonts/Outfit-OFL.txt +0 -93
  640. package/skills/ck-ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  641. package/skills/ck-ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  642. package/skills/ck-ui-styling/canvas-fonts/PixelifySans-OFL.txt +0 -93
  643. package/skills/ck-ui-styling/canvas-fonts/PoiretOne-OFL.txt +0 -93
  644. package/skills/ck-ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  645. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  646. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-OFL.txt +0 -93
  647. package/skills/ck-ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  648. package/skills/ck-ui-styling/canvas-fonts/Silkscreen-OFL.txt +0 -93
  649. package/skills/ck-ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  650. package/skills/ck-ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  651. package/skills/ck-ui-styling/canvas-fonts/SmoochSans-OFL.txt +0 -93
  652. package/skills/ck-ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  653. package/skills/ck-ui-styling/canvas-fonts/Tektur-OFL.txt +0 -93
  654. package/skills/ck-ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  655. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  656. package/skills/ck-ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  657. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  658. package/skills/ck-ui-styling/canvas-fonts/WorkSans-OFL.txt +0 -93
  659. package/skills/ck-ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  660. package/skills/ck-ui-styling/canvas-fonts/YoungSerif-OFL.txt +0 -93
  661. package/skills/ck-ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  662. package/skills/ck-ui-styling/references/canvas-design-system.md +0 -320
  663. package/skills/ck-ui-styling/references/shadcn-accessibility.md +0 -471
  664. package/skills/ck-ui-styling/references/shadcn-components.md +0 -424
  665. package/skills/ck-ui-styling/references/shadcn-theming.md +0 -373
  666. package/skills/ck-ui-styling/references/tailwind-customization.md +0 -483
  667. package/skills/ck-ui-styling/references/tailwind-responsive.md +0 -382
  668. package/skills/ck-ui-styling/references/tailwind-utilities.md +0 -455
  669. package/skills/ck-ui-styling/scripts/.coverage +0 -0
  670. package/skills/ck-ui-styling/scripts/requirements.txt +0 -17
  671. package/skills/ck-ui-styling/scripts/shadcn_add.py +0 -292
  672. package/skills/ck-ui-styling/scripts/tailwind_config_gen.py +0 -456
  673. package/skills/ck-ui-styling/scripts/tests/coverage-ui.json +0 -1
  674. package/skills/ck-ui-styling/scripts/tests/requirements.txt +0 -3
  675. package/skills/ck-ui-styling/scripts/tests/test_shadcn_add.py +0 -266
  676. package/skills/ck-ui-styling/scripts/tests/test_tailwind_config_gen.py +0 -336
  677. package/skills/ck-ui-ux-pro-max/SKILL.md +0 -227
  678. package/skills/ck-ui-ux-pro-max/data/charts.csv +0 -26
  679. package/skills/ck-ui-ux-pro-max/data/colors.csv +0 -97
  680. package/skills/ck-ui-ux-pro-max/data/landing.csv +0 -31
  681. package/skills/ck-ui-ux-pro-max/data/products.csv +0 -97
  682. package/skills/ck-ui-ux-pro-max/data/prompts.csv +0 -24
  683. package/skills/ck-ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  684. package/skills/ck-ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -51
  685. package/skills/ck-ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  686. package/skills/ck-ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  687. package/skills/ck-ui-ux-pro-max/data/stacks/react.csv +0 -54
  688. package/skills/ck-ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  689. package/skills/ck-ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  690. package/skills/ck-ui-ux-pro-max/data/stacks/vue.csv +0 -50
  691. package/skills/ck-ui-ux-pro-max/data/styles.csv +0 -59
  692. package/skills/ck-ui-ux-pro-max/data/typography.csv +0 -58
  693. package/skills/ck-ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  694. package/skills/ck-ui-ux-pro-max/scripts/core.py +0 -236
  695. package/skills/ck-ui-ux-pro-max/scripts/search.py +0 -76
  696. package/skills/ck-web-frameworks/SKILL.md +0 -322
  697. package/skills/ck-web-frameworks/references/nextjs-app-router.md +0 -465
  698. package/skills/ck-web-frameworks/references/nextjs-data-fetching.md +0 -459
  699. package/skills/ck-web-frameworks/references/nextjs-optimization.md +0 -511
  700. package/skills/ck-web-frameworks/references/nextjs-server-components.md +0 -495
  701. package/skills/ck-web-frameworks/references/remix-icon-integration.md +0 -603
  702. package/skills/ck-web-frameworks/references/turborepo-caching.md +0 -551
  703. package/skills/ck-web-frameworks/references/turborepo-pipelines.md +0 -517
  704. package/skills/ck-web-frameworks/references/turborepo-setup.md +0 -542
  705. package/skills/ck-web-frameworks/scripts/.coverage +0 -0
  706. package/skills/ck-web-frameworks/scripts/__init__.py +0 -0
  707. package/skills/ck-web-frameworks/scripts/nextjs_init.py +0 -547
  708. package/skills/ck-web-frameworks/scripts/requirements.txt +0 -16
  709. package/skills/ck-web-frameworks/scripts/tests/coverage-web.json +0 -1
  710. package/skills/ck-web-frameworks/scripts/tests/requirements.txt +0 -3
  711. package/skills/ck-web-frameworks/scripts/tests/test_nextjs_init.py +0 -319
  712. package/skills/ck-web-frameworks/scripts/tests/test_turborepo_migrate.py +0 -374
  713. package/skills/ck-web-frameworks/scripts/turborepo_migrate.py +0 -394
  714. package/templates/repo/.github/agents/database-admin.agent.md +0 -91
  715. package/templates/repo/.github/agents/fullstack-developer.agent.md +0 -96
  716. package/templates/repo/.github/agents/mcp-manager.agent.md +0 -93
  717. package/templates/repo/.github/agents/project-manager.agent.md +0 -124
  718. package/templates/repo/.github/agents/scout-external.agent.md +0 -141
  719. package/templates/repo/.github/agents/ui-ux-designer.agent.md +0 -225
  720. package/templates/repo/.github/collections/ck-ui-design.collection.yml +0 -18
  721. package/templates/repo/.github/instructions/ck-frontend-design-pro.instructions.md +0 -58
  722. package/templates/repo/.github/instructions/ck-google-adk-python.instructions.md +0 -242
  723. package/templates/repo/.github/prompts/ck-bootstrap-auto-fast.prompt.md +0 -108
  724. package/templates/repo/.github/prompts/ck-bootstrap-auto-parallel.prompt.md +0 -66
  725. package/templates/repo/.github/prompts/ck-bootstrap-auto.prompt.md +0 -114
  726. package/templates/repo/.github/prompts/ck-code-auto.prompt.md +0 -172
  727. package/templates/repo/.github/prompts/ck-code-no-test.prompt.md +0 -160
  728. package/templates/repo/.github/prompts/ck-code-parallel.prompt.md +0 -57
  729. package/templates/repo/.github/prompts/ck-coding-level.prompt.md +0 -54
  730. package/templates/repo/.github/prompts/ck-cook-auto-fast.prompt.md +0 -26
  731. package/templates/repo/.github/prompts/ck-cook-auto-parallel.prompt.md +0 -50
  732. package/templates/repo/.github/prompts/ck-cook-auto.prompt.md +0 -17
  733. package/templates/repo/.github/prompts/ck-design-3d.prompt.md +0 -84
  734. package/templates/repo/.github/prompts/ck-design-describe.prompt.md +0 -24
  735. package/templates/repo/.github/prompts/ck-design-fast.prompt.md +0 -32
  736. package/templates/repo/.github/prompts/ck-design-good.prompt.md +0 -36
  737. package/templates/repo/.github/prompts/ck-design-screenshot.prompt.md +0 -35
  738. package/templates/repo/.github/prompts/ck-design-video.prompt.md +0 -35
  739. package/templates/repo/.github/prompts/ck-docs-init.prompt.md +0 -27
  740. package/templates/repo/.github/prompts/ck-docs-summarize.prompt.md +0 -23
  741. package/templates/repo/.github/prompts/ck-docs-update.prompt.md +0 -36
  742. package/templates/repo/.github/prompts/ck-fix-ci.prompt.md +0 -18
  743. package/templates/repo/.github/prompts/ck-fix-fast.prompt.md +0 -18
  744. package/templates/repo/.github/prompts/ck-fix-hard.prompt.md +0 -36
  745. package/templates/repo/.github/prompts/ck-fix-logs.prompt.md +0 -27
  746. package/templates/repo/.github/prompts/ck-fix-parallel.prompt.md +0 -54
  747. package/templates/repo/.github/prompts/ck-fix-test.prompt.md +0 -19
  748. package/templates/repo/.github/prompts/ck-fix-types.prompt.md +0 -11
  749. package/templates/repo/.github/prompts/ck-fix-ui.prompt.md +0 -49
  750. package/templates/repo/.github/prompts/ck-git-cm.prompt.md +0 -8
  751. package/templates/repo/.github/prompts/ck-git-cp.prompt.md +0 -7
  752. package/templates/repo/.github/prompts/ck-git-merge.prompt.md +0 -41
  753. package/templates/repo/.github/prompts/ck-git-pr.prompt.md +0 -49
  754. package/templates/repo/.github/prompts/ck-kanban.prompt.md +0 -77
  755. package/templates/repo/.github/prompts/ck-plan-archive.prompt.md +0 -57
  756. package/templates/repo/.github/prompts/ck-plan-ci.prompt.md +0 -35
  757. package/templates/repo/.github/prompts/ck-plan-cro.prompt.md +0 -66
  758. package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +0 -103
  759. package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +0 -125
  760. package/templates/repo/.github/prompts/ck-plan-parallel.prompt.md +0 -159
  761. package/templates/repo/.github/prompts/ck-plan-two.prompt.md +0 -78
  762. package/templates/repo/.github/prompts/ck-plan-validate.prompt.md +0 -117
  763. package/templates/repo/.github/prompts/ck-preview.prompt.md +0 -65
  764. package/templates/repo/.github/prompts/ck-scout-ext.prompt.md +0 -35
  765. package/templates/repo/.github/prompts/ck-skill-add.prompt.md +0 -36
  766. package/templates/repo/.github/prompts/ck-skill-create.prompt.md +0 -29
  767. package/templates/repo/.github/prompts/ck-skill-fix-logs.prompt.md +0 -22
  768. package/templates/repo/.github/prompts/ck-skill-optimize-auto.prompt.md +0 -25
  769. package/templates/repo/.github/prompts/ck-skill-optimize.prompt.md +0 -34
  770. package/templates/repo/.github/prompts/ck-skill-plan.prompt.md +0 -46
  771. package/templates/repo/.github/prompts/ck-test-ui.prompt.md +0 -92
  772. package/templates/repo/.github/prompts/ck-use-mcp.prompt.md +0 -27
  773. package/templates/repo/.github/prompts/ck-watzup.prompt.md +0 -11
  774. package/templates/repo/.github/prompts/ck-worktree.prompt.md +0 -127
  775. package/templates/repo/.github/skills/ck-ai-artist/SKILL.md +0 -73
  776. package/templates/repo/.github/skills/ck-ai-artist/references/advanced-techniques.md +0 -184
  777. package/templates/repo/.github/skills/ck-ai-artist/references/domain-code.md +0 -66
  778. package/templates/repo/.github/skills/ck-ai-artist/references/domain-data.md +0 -72
  779. package/templates/repo/.github/skills/ck-ai-artist/references/domain-marketing.md +0 -66
  780. package/templates/repo/.github/skills/ck-ai-artist/references/domain-patterns.md +0 -33
  781. package/templates/repo/.github/skills/ck-ai-artist/references/domain-writing.md +0 -68
  782. package/templates/repo/.github/skills/ck-ai-artist/references/image-prompting.md +0 -141
  783. package/templates/repo/.github/skills/ck-ai-artist/references/llm-prompting.md +0 -165
  784. package/templates/repo/.github/skills/ck-ai-artist/references/nano-banana.md +0 -59
  785. package/templates/repo/.github/skills/ck-ai-artist/references/reasoning-techniques.md +0 -201
  786. package/templates/repo/.github/skills/ck-better-auth/SKILL.md +0 -202
  787. package/templates/repo/.github/skills/ck-better-auth/references/advanced-features.md +0 -553
  788. package/templates/repo/.github/skills/ck-better-auth/references/database-integration.md +0 -577
  789. package/templates/repo/.github/skills/ck-better-auth/references/email-password-auth.md +0 -416
  790. package/templates/repo/.github/skills/ck-better-auth/references/oauth-providers.md +0 -430
  791. package/templates/repo/.github/skills/ck-better-auth/scripts/.coverage +0 -0
  792. package/templates/repo/.github/skills/ck-better-auth/scripts/better_auth_init.py +0 -521
  793. package/templates/repo/.github/skills/ck-better-auth/scripts/requirements.txt +0 -15
  794. package/templates/repo/.github/skills/ck-better-auth/scripts/tests/.coverage +0 -0
  795. package/templates/repo/.github/skills/ck-better-auth/scripts/tests/test_better_auth_init.py +0 -421
  796. package/templates/repo/.github/skills/ck-chrome-devtools/SKILL.md +0 -470
  797. package/templates/repo/.github/skills/ck-chrome-devtools/references/cdp-domains.md +0 -694
  798. package/templates/repo/.github/skills/ck-chrome-devtools/references/performance-guide.md +0 -940
  799. package/templates/repo/.github/skills/ck-chrome-devtools/references/puppeteer-reference.md +0 -953
  800. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/README.md +0 -272
  801. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/__tests__/selector.test.js +0 -210
  802. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/aria-snapshot.js +0 -362
  803. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/click.js +0 -83
  804. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/console.js +0 -79
  805. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/evaluate.js +0 -53
  806. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/fill.js +0 -76
  807. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/inject-auth.js +0 -229
  808. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/install-deps.sh +0 -181
  809. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/install.sh +0 -83
  810. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/lib/browser.js +0 -318
  811. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/lib/selector.js +0 -178
  812. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/navigate.js +0 -54
  813. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/network.js +0 -106
  814. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/package-lock.json +0 -1589
  815. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/package.json +0 -16
  816. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/performance.js +0 -149
  817. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/screenshot.js +0 -198
  818. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/select-ref.js +0 -131
  819. package/templates/repo/.github/skills/ck-chrome-devtools/scripts/snapshot.js +0 -135
  820. package/templates/repo/.github/skills/ck-databases/SKILL.md +0 -231
  821. package/templates/repo/.github/skills/ck-databases/references/mongodb-aggregation.md +0 -447
  822. package/templates/repo/.github/skills/ck-databases/references/mongodb-atlas.md +0 -465
  823. package/templates/repo/.github/skills/ck-databases/references/mongodb-crud.md +0 -408
  824. package/templates/repo/.github/skills/ck-databases/references/mongodb-indexing.md +0 -442
  825. package/templates/repo/.github/skills/ck-databases/references/postgresql-administration.md +0 -594
  826. package/templates/repo/.github/skills/ck-databases/references/postgresql-performance.md +0 -527
  827. package/templates/repo/.github/skills/ck-databases/references/postgresql-psql-cli.md +0 -467
  828. package/templates/repo/.github/skills/ck-databases/references/postgresql-queries.md +0 -475
  829. package/templates/repo/.github/skills/ck-databases/scripts/.coverage +0 -0
  830. package/templates/repo/.github/skills/ck-databases/scripts/db_backup.py +0 -502
  831. package/templates/repo/.github/skills/ck-databases/scripts/db_migrate.py +0 -425
  832. package/templates/repo/.github/skills/ck-databases/scripts/db_performance_check.py +0 -456
  833. package/templates/repo/.github/skills/ck-databases/scripts/requirements.txt +0 -20
  834. package/templates/repo/.github/skills/ck-databases/scripts/tests/coverage-db.json +0 -1
  835. package/templates/repo/.github/skills/ck-databases/scripts/tests/requirements.txt +0 -4
  836. package/templates/repo/.github/skills/ck-databases/scripts/tests/test_db_backup.py +0 -340
  837. package/templates/repo/.github/skills/ck-databases/scripts/tests/test_db_migrate.py +0 -277
  838. package/templates/repo/.github/skills/ck-databases/scripts/tests/test_db_performance_check.py +0 -370
  839. package/templates/repo/.github/skills/ck-devops/.env.example +0 -76
  840. package/templates/repo/.github/skills/ck-devops/SKILL.md +0 -283
  841. package/templates/repo/.github/skills/ck-devops/references/browser-rendering.md +0 -305
  842. package/templates/repo/.github/skills/ck-devops/references/cloudflare-d1-kv.md +0 -123
  843. package/templates/repo/.github/skills/ck-devops/references/cloudflare-platform.md +0 -271
  844. package/templates/repo/.github/skills/ck-devops/references/cloudflare-r2-storage.md +0 -280
  845. package/templates/repo/.github/skills/ck-devops/references/cloudflare-workers-advanced.md +0 -312
  846. package/templates/repo/.github/skills/ck-devops/references/cloudflare-workers-apis.md +0 -309
  847. package/templates/repo/.github/skills/ck-devops/references/cloudflare-workers-basics.md +0 -418
  848. package/templates/repo/.github/skills/ck-devops/references/docker-basics.md +0 -297
  849. package/templates/repo/.github/skills/ck-devops/references/docker-compose.md +0 -292
  850. package/templates/repo/.github/skills/ck-devops/references/gcloud-platform.md +0 -297
  851. package/templates/repo/.github/skills/ck-devops/references/gcloud-services.md +0 -304
  852. package/templates/repo/.github/skills/ck-devops/scripts/cloudflare_deploy.py +0 -269
  853. package/templates/repo/.github/skills/ck-devops/scripts/docker_optimize.py +0 -331
  854. package/templates/repo/.github/skills/ck-devops/scripts/requirements.txt +0 -20
  855. package/templates/repo/.github/skills/ck-devops/scripts/tests/requirements.txt +0 -3
  856. package/templates/repo/.github/skills/ck-devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  857. package/templates/repo/.github/skills/ck-devops/scripts/tests/test_docker_optimize.py +0 -436
  858. package/templates/repo/.github/skills/ck-docs-seeker/.env.example +0 -15
  859. package/templates/repo/.github/skills/ck-docs-seeker/SKILL.md +0 -96
  860. package/templates/repo/.github/skills/ck-docs-seeker/package.json +0 -25
  861. package/templates/repo/.github/skills/ck-docs-seeker/references/advanced.md +0 -79
  862. package/templates/repo/.github/skills/ck-docs-seeker/references/context7-patterns.md +0 -68
  863. package/templates/repo/.github/skills/ck-docs-seeker/references/errors.md +0 -68
  864. package/templates/repo/.github/skills/ck-docs-seeker/references/search-patterns.md +0 -93
  865. package/templates/repo/.github/skills/ck-docs-seeker/references/source-evaluation.md +0 -77
  866. package/templates/repo/.github/skills/ck-docs-seeker/scripts/analyze-llms-txt.js +0 -211
  867. package/templates/repo/.github/skills/ck-docs-seeker/scripts/detect-topic.js +0 -172
  868. package/templates/repo/.github/skills/ck-docs-seeker/scripts/fetch-docs.js +0 -213
  869. package/templates/repo/.github/skills/ck-docs-seeker/scripts/tests/run-tests.js +0 -72
  870. package/templates/repo/.github/skills/ck-docs-seeker/scripts/tests/test-analyze-llms.js +0 -119
  871. package/templates/repo/.github/skills/ck-docs-seeker/scripts/tests/test-detect-topic.js +0 -112
  872. package/templates/repo/.github/skills/ck-docs-seeker/scripts/tests/test-fetch-docs.js +0 -84
  873. package/templates/repo/.github/skills/ck-docs-seeker/scripts/utils/env-loader.js +0 -94
  874. package/templates/repo/.github/skills/ck-docs-seeker/workflows/library-search.md +0 -87
  875. package/templates/repo/.github/skills/ck-docs-seeker/workflows/repo-analysis.md +0 -91
  876. package/templates/repo/.github/skills/ck-docs-seeker/workflows/topic-search.md +0 -77
  877. package/templates/repo/.github/skills/ck-frontend-design/SKILL.md +0 -79
  878. package/templates/repo/.github/skills/ck-frontend-design/references/analysis-best-practices.md +0 -80
  879. package/templates/repo/.github/skills/ck-frontend-design/references/analysis-prompts.md +0 -141
  880. package/templates/repo/.github/skills/ck-frontend-design/references/analysis-techniques.md +0 -118
  881. package/templates/repo/.github/skills/ck-frontend-design/references/animejs.md +0 -396
  882. package/templates/repo/.github/skills/ck-frontend-design/references/design-extraction-overview.md +0 -71
  883. package/templates/repo/.github/skills/ck-frontend-design/references/extraction-best-practices.md +0 -141
  884. package/templates/repo/.github/skills/ck-frontend-design/references/extraction-output-templates.md +0 -162
  885. package/templates/repo/.github/skills/ck-frontend-design/references/extraction-prompts.md +0 -127
  886. package/templates/repo/.github/skills/ck-frontend-design/references/technical-accessibility.md +0 -119
  887. package/templates/repo/.github/skills/ck-frontend-design/references/technical-best-practices.md +0 -97
  888. package/templates/repo/.github/skills/ck-frontend-design/references/technical-optimization.md +0 -44
  889. package/templates/repo/.github/skills/ck-frontend-design/references/technical-overview.md +0 -90
  890. package/templates/repo/.github/skills/ck-frontend-design/references/technical-workflows.md +0 -150
  891. package/templates/repo/.github/skills/ck-frontend-design/references/visual-analysis-overview.md +0 -95
  892. package/templates/repo/.github/skills/ck-markdown-novel-viewer/SKILL.md +0 -190
  893. package/templates/repo/.github/skills/ck-markdown-novel-viewer/assets/directory-browser.css +0 -215
  894. package/templates/repo/.github/skills/ck-markdown-novel-viewer/assets/favicon.png +0 -0
  895. package/templates/repo/.github/skills/ck-markdown-novel-viewer/assets/novel-theme.css +0 -818
  896. package/templates/repo/.github/skills/ck-markdown-novel-viewer/assets/reader.js +0 -262
  897. package/templates/repo/.github/skills/ck-markdown-novel-viewer/assets/template.html +0 -80
  898. package/templates/repo/.github/skills/ck-markdown-novel-viewer/package.json +0 -15
  899. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/lib/http-server.cjs +0 -434
  900. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/lib/markdown-renderer.cjs +0 -272
  901. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/lib/plan-navigator.cjs +0 -509
  902. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/lib/port-finder.cjs +0 -48
  903. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/lib/process-mgr.cjs +0 -150
  904. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/server.cjs +0 -411
  905. package/templates/repo/.github/skills/ck-markdown-novel-viewer/scripts/tests/server.test.cjs +0 -283
  906. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/dashboard-assets.test.cjs +0 -340
  907. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/dashboard-renderer.test.cjs +0 -404
  908. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/http-server.test.cjs +0 -271
  909. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/run-tests.cjs +0 -51
  910. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/test-framework.cjs +0 -154
  911. package/templates/repo/.github/skills/ck-markdown-novel-viewer/tests/verify-xss.cjs +0 -90
  912. package/templates/repo/.github/skills/ck-mcp-builder/LICENSE.txt +0 -202
  913. package/templates/repo/.github/skills/ck-mcp-builder/SKILL.md +0 -327
  914. package/templates/repo/.github/skills/ck-mcp-builder/reference/evaluation.md +0 -602
  915. package/templates/repo/.github/skills/ck-mcp-builder/reference/mcp_best_practices.md +0 -915
  916. package/templates/repo/.github/skills/ck-mcp-builder/reference/node_mcp_server.md +0 -916
  917. package/templates/repo/.github/skills/ck-mcp-builder/reference/python_mcp_server.md +0 -752
  918. package/templates/repo/.github/skills/ck-mcp-builder/scripts/connections.py +0 -151
  919. package/templates/repo/.github/skills/ck-mcp-builder/scripts/evaluation.py +0 -373
  920. package/templates/repo/.github/skills/ck-mcp-builder/scripts/example_evaluation.xml +0 -22
  921. package/templates/repo/.github/skills/ck-mcp-builder/scripts/requirements.txt +0 -2
  922. package/templates/repo/.github/skills/ck-mcp-management/README.md +0 -219
  923. package/templates/repo/.github/skills/ck-mcp-management/SKILL.md +0 -209
  924. package/templates/repo/.github/skills/ck-mcp-management/assets/tools.json +0 -3146
  925. package/templates/repo/.github/skills/ck-mcp-management/references/configuration.md +0 -114
  926. package/templates/repo/.github/skills/ck-mcp-management/references/gemini-cli-integration.md +0 -215
  927. package/templates/repo/.github/skills/ck-mcp-management/references/mcp-protocol.md +0 -116
  928. package/templates/repo/.github/skills/ck-mcp-management/scripts/.env.example +0 -10
  929. package/templates/repo/.github/skills/ck-mcp-management/scripts/cli.ts +0 -195
  930. package/templates/repo/.github/skills/ck-mcp-management/scripts/dist/analyze-tools.js +0 -70
  931. package/templates/repo/.github/skills/ck-mcp-management/scripts/dist/cli.js +0 -160
  932. package/templates/repo/.github/skills/ck-mcp-management/scripts/dist/mcp-client.js +0 -183
  933. package/templates/repo/.github/skills/ck-mcp-management/scripts/mcp-client.ts +0 -230
  934. package/templates/repo/.github/skills/ck-mcp-management/scripts/package.json +0 -20
  935. package/templates/repo/.github/skills/ck-mcp-management/scripts/tsconfig.json +0 -15
  936. package/templates/repo/.github/skills/ck-media-processing/SKILL.md +0 -90
  937. package/templates/repo/.github/skills/ck-media-processing/references/common-workflows.md +0 -132
  938. package/templates/repo/.github/skills/ck-media-processing/references/ffmpeg-encoding.md +0 -358
  939. package/templates/repo/.github/skills/ck-media-processing/references/ffmpeg-filters.md +0 -503
  940. package/templates/repo/.github/skills/ck-media-processing/references/ffmpeg-streaming.md +0 -403
  941. package/templates/repo/.github/skills/ck-media-processing/references/format-compatibility.md +0 -375
  942. package/templates/repo/.github/skills/ck-media-processing/references/imagemagick-batch.md +0 -612
  943. package/templates/repo/.github/skills/ck-media-processing/references/imagemagick-editing.md +0 -623
  944. package/templates/repo/.github/skills/ck-media-processing/references/rmbg-background-removal.md +0 -66
  945. package/templates/repo/.github/skills/ck-media-processing/references/troubleshooting.md +0 -109
  946. package/templates/repo/.github/skills/ck-media-processing/scripts/README.md +0 -111
  947. package/templates/repo/.github/skills/ck-media-processing/scripts/batch-remove-background.sh +0 -124
  948. package/templates/repo/.github/skills/ck-media-processing/scripts/batch_resize.py +0 -342
  949. package/templates/repo/.github/skills/ck-media-processing/scripts/media_convert.py +0 -311
  950. package/templates/repo/.github/skills/ck-media-processing/scripts/remove-background.sh +0 -96
  951. package/templates/repo/.github/skills/ck-media-processing/scripts/remove-bg-node.js +0 -158
  952. package/templates/repo/.github/skills/ck-media-processing/scripts/requirements.txt +0 -24
  953. package/templates/repo/.github/skills/ck-media-processing/scripts/tests/.coverage +0 -0
  954. package/templates/repo/.github/skills/ck-media-processing/scripts/tests/requirements.txt +0 -2
  955. package/templates/repo/.github/skills/ck-media-processing/scripts/tests/test_batch_resize.py +0 -372
  956. package/templates/repo/.github/skills/ck-media-processing/scripts/tests/test_media_convert.py +0 -259
  957. package/templates/repo/.github/skills/ck-media-processing/scripts/tests/test_video_optimize.py +0 -397
  958. package/templates/repo/.github/skills/ck-media-processing/scripts/video_optimize.py +0 -414
  959. package/templates/repo/.github/skills/ck-mobile-development/SKILL.md +0 -210
  960. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-android.md +0 -604
  961. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-best-practices.md +0 -545
  962. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-debugging.md +0 -1089
  963. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-frameworks.md +0 -465
  964. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-ios.md +0 -496
  965. package/templates/repo/.github/skills/ck-mobile-development/references/mobile-mindset.md +0 -544
  966. package/templates/repo/.github/skills/ck-payment-integration/README.md +0 -185
  967. package/templates/repo/.github/skills/ck-payment-integration/SKILL.md +0 -116
  968. package/templates/repo/.github/skills/ck-payment-integration/references/polar/benefits.md +0 -396
  969. package/templates/repo/.github/skills/ck-payment-integration/references/polar/best-practices.md +0 -482
  970. package/templates/repo/.github/skills/ck-payment-integration/references/polar/checkouts.md +0 -266
  971. package/templates/repo/.github/skills/ck-payment-integration/references/polar/overview.md +0 -184
  972. package/templates/repo/.github/skills/ck-payment-integration/references/polar/products.md +0 -244
  973. package/templates/repo/.github/skills/ck-payment-integration/references/polar/sdk.md +0 -436
  974. package/templates/repo/.github/skills/ck-payment-integration/references/polar/subscriptions.md +0 -340
  975. package/templates/repo/.github/skills/ck-payment-integration/references/polar/webhooks.md +0 -405
  976. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/api.md +0 -140
  977. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/best-practices.md +0 -337
  978. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/overview.md +0 -138
  979. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/qr-codes.md +0 -228
  980. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/sdk.md +0 -213
  981. package/templates/repo/.github/skills/ck-payment-integration/references/sepay/webhooks.md +0 -208
  982. package/templates/repo/.github/skills/ck-payment-integration/scripts/.env.example +0 -20
  983. package/templates/repo/.github/skills/ck-payment-integration/scripts/checkout-helper.js +0 -244
  984. package/templates/repo/.github/skills/ck-payment-integration/scripts/package.json +0 -17
  985. package/templates/repo/.github/skills/ck-payment-integration/scripts/polar-webhook-verify.js +0 -202
  986. package/templates/repo/.github/skills/ck-payment-integration/scripts/sepay-webhook-verify.js +0 -193
  987. package/templates/repo/.github/skills/ck-payment-integration/scripts/test-scripts.js +0 -237
  988. package/templates/repo/.github/skills/ck-repomix/SKILL.md +0 -247
  989. package/templates/repo/.github/skills/ck-repomix/references/configuration.md +0 -211
  990. package/templates/repo/.github/skills/ck-repomix/references/usage-patterns.md +0 -232
  991. package/templates/repo/.github/skills/ck-repomix/scripts/.coverage +0 -0
  992. package/templates/repo/.github/skills/ck-repomix/scripts/README.md +0 -179
  993. package/templates/repo/.github/skills/ck-repomix/scripts/repomix_batch.py +0 -455
  994. package/templates/repo/.github/skills/ck-repomix/scripts/repos.example.json +0 -15
  995. package/templates/repo/.github/skills/ck-repomix/scripts/requirements.txt +0 -15
  996. package/templates/repo/.github/skills/ck-repomix/scripts/tests/test_repomix_batch.py +0 -531
  997. package/templates/repo/.github/skills/ck-shopify/README.md +0 -66
  998. package/templates/repo/.github/skills/ck-shopify/SKILL.md +0 -319
  999. package/templates/repo/.github/skills/ck-shopify/references/app-development.md +0 -470
  1000. package/templates/repo/.github/skills/ck-shopify/references/extensions.md +0 -493
  1001. package/templates/repo/.github/skills/ck-shopify/references/themes.md +0 -498
  1002. package/templates/repo/.github/skills/ck-shopify/scripts/.coverage +0 -0
  1003. package/templates/repo/.github/skills/ck-shopify/scripts/requirements.txt +0 -19
  1004. package/templates/repo/.github/skills/ck-shopify/scripts/shopify_init.py +0 -423
  1005. package/templates/repo/.github/skills/ck-shopify/scripts/tests/.coverage +0 -0
  1006. package/templates/repo/.github/skills/ck-shopify/scripts/tests/test_shopify_init.py +0 -385
  1007. package/templates/repo/.github/skills/ck-skill-creator/LICENSE.txt +0 -202
  1008. package/templates/repo/.github/skills/ck-skill-creator/SKILL.md +0 -263
  1009. package/templates/repo/.github/skills/ck-skill-creator/scripts/init_skill.py +0 -303
  1010. package/templates/repo/.github/skills/ck-skill-creator/scripts/package_skill.py +0 -110
  1011. package/templates/repo/.github/skills/ck-skill-creator/scripts/quick_validate.py +0 -65
  1012. package/templates/repo/.github/skills/ck-threejs/SKILL.md +0 -87
  1013. package/templates/repo/.github/skills/ck-threejs/references/01-getting-started.md +0 -177
  1014. package/templates/repo/.github/skills/ck-threejs/references/02-loaders.md +0 -169
  1015. package/templates/repo/.github/skills/ck-threejs/references/03-textures.md +0 -170
  1016. package/templates/repo/.github/skills/ck-threejs/references/04-cameras.md +0 -195
  1017. package/templates/repo/.github/skills/ck-threejs/references/05-lights.md +0 -183
  1018. package/templates/repo/.github/skills/ck-threejs/references/06-animations.md +0 -214
  1019. package/templates/repo/.github/skills/ck-threejs/references/07-math.md +0 -260
  1020. package/templates/repo/.github/skills/ck-threejs/references/08-interaction.md +0 -267
  1021. package/templates/repo/.github/skills/ck-threejs/references/09-postprocessing.md +0 -240
  1022. package/templates/repo/.github/skills/ck-threejs/references/10-controls.md +0 -259
  1023. package/templates/repo/.github/skills/ck-threejs/references/11-materials-advanced.md +0 -270
  1024. package/templates/repo/.github/skills/ck-threejs/references/12-performance.md +0 -269
  1025. package/templates/repo/.github/skills/ck-threejs/references/13-node-materials.md +0 -298
  1026. package/templates/repo/.github/skills/ck-threejs/references/14-physics-vr.md +0 -304
  1027. package/templates/repo/.github/skills/ck-threejs/references/15-specialized-loaders.md +0 -333
  1028. package/templates/repo/.github/skills/ck-threejs/references/16-webgpu.md +0 -302
  1029. package/templates/repo/.github/skills/ck-ui-styling/LICENSE.txt +0 -202
  1030. package/templates/repo/.github/skills/ck-ui-styling/SKILL.md +0 -319
  1031. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/ArsenalSC-OFL.txt +0 -93
  1032. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  1033. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  1034. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BigShoulders-OFL.txt +0 -93
  1035. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  1036. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Boldonse-OFL.txt +0 -93
  1037. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  1038. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  1039. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
  1040. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  1041. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  1042. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  1043. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/CrimsonPro-OFL.txt +0 -93
  1044. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  1045. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/DMMono-OFL.txt +0 -93
  1046. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  1047. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/EricaOne-OFL.txt +0 -94
  1048. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  1049. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  1050. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/GeistMono-OFL.txt +0 -93
  1051. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  1052. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Gloock-OFL.txt +0 -93
  1053. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  1054. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  1055. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
  1056. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  1057. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  1058. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  1059. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  1060. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  1061. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  1062. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  1063. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  1064. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSans-OFL.txt +0 -93
  1065. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  1066. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  1067. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  1068. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Italiana-OFL.txt +0 -93
  1069. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  1070. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  1071. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
  1072. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  1073. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  1074. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  1075. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Jura-OFL.txt +0 -93
  1076. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
  1077. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  1078. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  1079. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  1080. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  1081. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Lora-OFL.txt +0 -93
  1082. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  1083. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  1084. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/NationalPark-OFL.txt +0 -93
  1085. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  1086. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
  1087. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  1088. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  1089. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Outfit-OFL.txt +0 -93
  1090. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  1091. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  1092. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/PixelifySans-OFL.txt +0 -93
  1093. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/PoiretOne-OFL.txt +0 -93
  1094. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  1095. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  1096. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/RedHatMono-OFL.txt +0 -93
  1097. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  1098. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Silkscreen-OFL.txt +0 -93
  1099. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  1100. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  1101. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/SmoochSans-OFL.txt +0 -93
  1102. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  1103. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Tektur-OFL.txt +0 -93
  1104. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  1105. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  1106. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  1107. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  1108. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/WorkSans-OFL.txt +0 -93
  1109. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  1110. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/YoungSerif-OFL.txt +0 -93
  1111. package/templates/repo/.github/skills/ck-ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  1112. package/templates/repo/.github/skills/ck-ui-styling/references/canvas-design-system.md +0 -320
  1113. package/templates/repo/.github/skills/ck-ui-styling/references/shadcn-accessibility.md +0 -471
  1114. package/templates/repo/.github/skills/ck-ui-styling/references/shadcn-components.md +0 -424
  1115. package/templates/repo/.github/skills/ck-ui-styling/references/shadcn-theming.md +0 -373
  1116. package/templates/repo/.github/skills/ck-ui-styling/references/tailwind-customization.md +0 -483
  1117. package/templates/repo/.github/skills/ck-ui-styling/references/tailwind-responsive.md +0 -382
  1118. package/templates/repo/.github/skills/ck-ui-styling/references/tailwind-utilities.md +0 -455
  1119. package/templates/repo/.github/skills/ck-ui-styling/scripts/.coverage +0 -0
  1120. package/templates/repo/.github/skills/ck-ui-styling/scripts/requirements.txt +0 -17
  1121. package/templates/repo/.github/skills/ck-ui-styling/scripts/shadcn_add.py +0 -292
  1122. package/templates/repo/.github/skills/ck-ui-styling/scripts/tailwind_config_gen.py +0 -456
  1123. package/templates/repo/.github/skills/ck-ui-styling/scripts/tests/coverage-ui.json +0 -1
  1124. package/templates/repo/.github/skills/ck-ui-styling/scripts/tests/requirements.txt +0 -3
  1125. package/templates/repo/.github/skills/ck-ui-styling/scripts/tests/test_shadcn_add.py +0 -266
  1126. package/templates/repo/.github/skills/ck-ui-styling/scripts/tests/test_tailwind_config_gen.py +0 -336
  1127. package/templates/repo/.github/skills/ck-ui-ux-pro-max/SKILL.md +0 -227
  1128. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/charts.csv +0 -26
  1129. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/colors.csv +0 -97
  1130. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/landing.csv +0 -31
  1131. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/products.csv +0 -97
  1132. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/prompts.csv +0 -24
  1133. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  1134. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -51
  1135. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  1136. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  1137. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/react.csv +0 -54
  1138. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  1139. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  1140. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/stacks/vue.csv +0 -50
  1141. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/styles.csv +0 -59
  1142. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/typography.csv +0 -58
  1143. package/templates/repo/.github/skills/ck-ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  1144. package/templates/repo/.github/skills/ck-ui-ux-pro-max/scripts/core.py +0 -236
  1145. package/templates/repo/.github/skills/ck-ui-ux-pro-max/scripts/search.py +0 -76
  1146. package/templates/repo/.github/skills/ck-web-frameworks/SKILL.md +0 -322
  1147. package/templates/repo/.github/skills/ck-web-frameworks/references/nextjs-app-router.md +0 -465
  1148. package/templates/repo/.github/skills/ck-web-frameworks/references/nextjs-data-fetching.md +0 -459
  1149. package/templates/repo/.github/skills/ck-web-frameworks/references/nextjs-optimization.md +0 -511
  1150. package/templates/repo/.github/skills/ck-web-frameworks/references/nextjs-server-components.md +0 -495
  1151. package/templates/repo/.github/skills/ck-web-frameworks/references/remix-icon-integration.md +0 -603
  1152. package/templates/repo/.github/skills/ck-web-frameworks/references/turborepo-caching.md +0 -551
  1153. package/templates/repo/.github/skills/ck-web-frameworks/references/turborepo-pipelines.md +0 -517
  1154. package/templates/repo/.github/skills/ck-web-frameworks/references/turborepo-setup.md +0 -542
  1155. package/templates/repo/.github/skills/ck-web-frameworks/scripts/.coverage +0 -0
  1156. package/templates/repo/.github/skills/ck-web-frameworks/scripts/__init__.py +0 -0
  1157. package/templates/repo/.github/skills/ck-web-frameworks/scripts/nextjs_init.py +0 -547
  1158. package/templates/repo/.github/skills/ck-web-frameworks/scripts/requirements.txt +0 -16
  1159. package/templates/repo/.github/skills/ck-web-frameworks/scripts/tests/coverage-web.json +0 -1
  1160. package/templates/repo/.github/skills/ck-web-frameworks/scripts/tests/requirements.txt +0 -3
  1161. package/templates/repo/.github/skills/ck-web-frameworks/scripts/tests/test_nextjs_init.py +0 -319
  1162. package/templates/repo/.github/skills/ck-web-frameworks/scripts/tests/test_turborepo_migrate.py +0 -374
  1163. package/templates/repo/.github/skills/ck-web-frameworks/scripts/turborepo_migrate.py +0 -394
@@ -1,767 +1,767 @@
1
- # Data Fetching Patterns
2
-
3
- Modern data fetching using TanStack Query with Suspense boundaries, cache-first strategies, and centralized API services.
4
-
5
- ---
6
-
7
- ## PRIMARY PATTERN: useSuspenseQuery
8
-
9
- ### Why useSuspenseQuery?
10
-
11
- For **all new components**, use `useSuspenseQuery` instead of regular `useQuery`:
12
-
13
- **Benefits:**
14
- - No `isLoading` checks needed
15
- - Integrates with Suspense boundaries
16
- - Cleaner component code
17
- - Consistent loading UX
18
- - Better error handling with error boundaries
19
-
20
- ### Basic Pattern
21
-
22
- ```typescript
23
- import { useSuspenseQuery } from '@tanstack/react-query';
24
- import { myFeatureApi } from '../api/myFeatureApi';
25
-
26
- export const MyComponent: React.FC<Props> = ({ id }) => {
27
- // No isLoading - Suspense handles it!
28
- const { data } = useSuspenseQuery({
29
- queryKey: ['myEntity', id],
30
- queryFn: () => myFeatureApi.getEntity(id),
31
- });
32
-
33
- // data is ALWAYS defined here (not undefined | Data)
34
- return <div>{data.name}</div>;
35
- };
36
-
37
- // Wrap in Suspense boundary
38
- <SuspenseLoader>
39
- <MyComponent id={123} />
40
- </SuspenseLoader>
41
- ```
42
-
43
- ### useSuspenseQuery vs useQuery
44
-
45
- | Feature | useSuspenseQuery | useQuery |
46
- |---------|------------------|----------|
47
- | Loading state | Handled by Suspense | Manual `isLoading` check |
48
- | Data type | Always defined | `Data \| undefined` |
49
- | Use with | Suspense boundaries | Traditional components |
50
- | Recommended for | **NEW components** | Legacy code only |
51
- | Error handling | Error boundaries | Manual error state |
52
-
53
- **When to use regular useQuery:**
54
- - Maintaining legacy code
55
- - Very simple cases without Suspense
56
- - Polling with background updates
57
-
58
- **For new components: Always prefer useSuspenseQuery**
59
-
60
- ---
61
-
62
- ## Cache-First Strategy
63
-
64
- ### Cache-First Pattern Example
65
-
66
- **Smart caching** reduces API calls by checking React Query cache first:
67
-
68
- ```typescript
69
- import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
70
- import { postApi } from '../api/postApi';
71
-
72
- export function useSuspensePost(postId: number) {
73
- const queryClient = useQueryClient();
74
-
75
- return useSuspenseQuery({
76
- queryKey: ['post', postId],
77
- queryFn: async () => {
78
- // Strategy 1: Try to get from list cache first
79
- const cachedListData = queryClient.getQueryData<{ posts: Post[] }>([
80
- 'posts',
81
- 'list'
82
- ]);
83
-
84
- if (cachedListData?.posts) {
85
- const cachedPost = cachedListData.posts.find(
86
- (post) => post.id === postId
87
- );
88
-
89
- if (cachedPost) {
90
- return cachedPost; // Return from cache!
91
- }
92
- }
93
-
94
- // Strategy 2: Not in cache, fetch from API
95
- return postApi.getPost(postId);
96
- },
97
- staleTime: 5 * 60 * 1000, // Consider fresh for 5 minutes
98
- gcTime: 10 * 60 * 1000, // Keep in cache for 10 minutes
99
- refetchOnWindowFocus: false, // Don't refetch on focus
100
- });
101
- }
102
- ```
103
-
104
- **Key Points:**
105
- - Check grid/list cache before API call
106
- - Avoids redundant requests
107
- - `staleTime`: How long data is considered fresh
108
- - `gcTime`: How long unused data stays in cache
109
- - `refetchOnWindowFocus: false`: User preference
110
-
111
- ---
112
-
113
- ## Parallel Data Fetching
114
-
115
- ### useSuspenseQueries
116
-
117
- When fetching multiple independent resources:
118
-
119
- ```typescript
120
- import { useSuspenseQueries } from '@tanstack/react-query';
121
-
122
- export const MyComponent: React.FC = () => {
123
- const [userQuery, settingsQuery, preferencesQuery] = useSuspenseQueries({
124
- queries: [
125
- {
126
- queryKey: ['user'],
127
- queryFn: () => userApi.getCurrentUser(),
128
- },
129
- {
130
- queryKey: ['settings'],
131
- queryFn: () => settingsApi.getSettings(),
132
- },
133
- {
134
- queryKey: ['preferences'],
135
- queryFn: () => preferencesApi.getPreferences(),
136
- },
137
- ],
138
- });
139
-
140
- // All data available, Suspense handles loading
141
- const user = userQuery.data;
142
- const settings = settingsQuery.data;
143
- const preferences = preferencesQuery.data;
144
-
145
- return <Display user={user} settings={settings} prefs={preferences} />;
146
- };
147
- ```
148
-
149
- **Benefits:**
150
- - All queries in parallel
151
- - Single Suspense boundary
152
- - Type-safe results
153
-
154
- ---
155
-
156
- ## Query Keys Organization
157
-
158
- ### Naming Convention
159
-
160
- ```typescript
161
- // Entity list
162
- ['entities', blogId]
163
- ['entities', blogId, 'summary'] // With view mode
164
- ['entities', blogId, 'flat']
165
-
166
- // Single entity
167
- ['entity', blogId, entityId]
168
-
169
- // Related data
170
- ['entity', entityId, 'history']
171
- ['entity', entityId, 'comments']
172
-
173
- // User-specific
174
- ['user', userId, 'profile']
175
- ['user', userId, 'permissions']
176
- ```
177
-
178
- **Rules:**
179
- - Start with entity name (plural for lists, singular for one)
180
- - Include IDs for specificity
181
- - Add view mode / relationship at end
182
- - Consistent across app
183
-
184
- ### Query Key Examples
185
-
186
- ```typescript
187
- // From useSuspensePost.ts
188
- queryKey: ['post', blogId, postId]
189
- queryKey: ['posts-v2', blogId, 'summary']
190
-
191
- // Invalidation patterns
192
- queryClient.invalidateQueries({ queryKey: ['post', blogId] }); // All posts for form
193
- queryClient.invalidateQueries({ queryKey: ['post'] }); // All posts
194
- ```
195
-
196
- ---
197
-
198
- ## API Service Layer Pattern
199
-
200
- ### File Structure
201
-
202
- Create centralized API service per feature:
203
-
204
- ```
205
- features/
206
- my-feature/
207
- api/
208
- myFeatureApi.ts # Service layer
209
- ```
210
-
211
- ### Service Pattern (from postApi.ts)
212
-
213
- ```typescript
214
- /**
215
- * Centralized API service for my-feature operations
216
- * Uses apiClient for consistent error handling
217
- */
218
- import apiClient from '@/lib/apiClient';
219
- import type { MyEntity, UpdatePayload } from '../types';
220
-
221
- export const myFeatureApi = {
222
- /**
223
- * Fetch a single entity
224
- */
225
- getEntity: async (blogId: number, entityId: number): Promise<MyEntity> => {
226
- const { data } = await apiClient.get(
227
- `/blog/entities/${blogId}/${entityId}`
228
- );
229
- return data;
230
- },
231
-
232
- /**
233
- * Fetch all entities for a form
234
- */
235
- getEntities: async (blogId: number, view: 'summary' | 'flat'): Promise<MyEntity[]> => {
236
- const { data } = await apiClient.get(
237
- `/blog/entities/${blogId}`,
238
- { params: { view } }
239
- );
240
- return data.rows;
241
- },
242
-
243
- /**
244
- * Update entity
245
- */
246
- updateEntity: async (
247
- blogId: number,
248
- entityId: number,
249
- payload: UpdatePayload
250
- ): Promise<MyEntity> => {
251
- const { data } = await apiClient.put(
252
- `/blog/entities/${blogId}/${entityId}`,
253
- payload
254
- );
255
- return data;
256
- },
257
-
258
- /**
259
- * Delete entity
260
- */
261
- deleteEntity: async (blogId: number, entityId: number): Promise<void> => {
262
- await apiClient.delete(`/blog/entities/${blogId}/${entityId}`);
263
- },
264
- };
265
- ```
266
-
267
- **Key Points:**
268
- - Export single object with methods
269
- - Use `apiClient` (axios instance from `@/lib/apiClient`)
270
- - Type-safe parameters and returns
271
- - JSDoc comments for each method
272
- - Centralized error handling (apiClient handles it)
273
-
274
- ---
275
-
276
- ## Route Format Rules (IMPORTANT)
277
-
278
- ### Correct Format
279
-
280
- ```typescript
281
- // ✅ CORRECT - Direct service path
282
- await apiClient.get('/blog/posts/123');
283
- await apiClient.post('/projects/create', data);
284
- await apiClient.put('/users/update/456', updates);
285
- await apiClient.get('/email/templates');
286
-
287
- // ❌ WRONG - Do NOT add /api/ prefix
288
- await apiClient.get('/api/blog/posts/123'); // WRONG!
289
- await apiClient.post('/api/projects/create', data); // WRONG!
290
- ```
291
-
292
- **Microservice Routing:**
293
- - Form service: `/blog/*`
294
- - Projects service: `/projects/*`
295
- - Email service: `/email/*`
296
- - Users service: `/users/*`
297
-
298
- **Why:** API routing is handled by proxy configuration, no `/api/` prefix needed.
299
-
300
- ---
301
-
302
- ## Mutations
303
-
304
- ### Basic Mutation Pattern
305
-
306
- ```typescript
307
- import { useMutation, useQueryClient } from '@tanstack/react-query';
308
- import { myFeatureApi } from '../api/myFeatureApi';
309
- import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
310
-
311
- export const MyComponent: React.FC = () => {
312
- const queryClient = useQueryClient();
313
- const { showSuccess, showError } = useMuiSnackbar();
314
-
315
- const updateMutation = useMutation({
316
- mutationFn: (payload: UpdatePayload) =>
317
- myFeatureApi.updateEntity(blogId, entityId, payload),
318
-
319
- onSuccess: () => {
320
- // Invalidate and refetch
321
- queryClient.invalidateQueries({
322
- queryKey: ['entity', blogId, entityId]
323
- });
324
- showSuccess('Entity updated successfully');
325
- },
326
-
327
- onError: (error) => {
328
- showError('Failed to update entity');
329
- console.error('Update error:', error);
330
- },
331
- });
332
-
333
- const handleUpdate = () => {
334
- updateMutation.mutate({ name: 'New Name' });
335
- };
336
-
337
- return (
338
- <Button
339
- onClick={handleUpdate}
340
- disabled={updateMutation.isPending}
341
- >
342
- {updateMutation.isPending ? 'Updating...' : 'Update'}
343
- </Button>
344
- );
345
- };
346
- ```
347
-
348
- ### Optimistic Updates
349
-
350
- ```typescript
351
- const updateMutation = useMutation({
352
- mutationFn: (payload) => myFeatureApi.update(id, payload),
353
-
354
- // Optimistic update
355
- onMutate: async (newData) => {
356
- // Cancel outgoing refetches
357
- await queryClient.cancelQueries({ queryKey: ['entity', id] });
358
-
359
- // Snapshot current value
360
- const previousData = queryClient.getQueryData(['entity', id]);
361
-
362
- // Optimistically update
363
- queryClient.setQueryData(['entity', id], (old) => ({
364
- ...old,
365
- ...newData,
366
- }));
367
-
368
- // Return rollback function
369
- return { previousData };
370
- },
371
-
372
- // Rollback on error
373
- onError: (err, newData, context) => {
374
- queryClient.setQueryData(['entity', id], context.previousData);
375
- showError('Update failed');
376
- },
377
-
378
- // Refetch after success or error
379
- onSettled: () => {
380
- queryClient.invalidateQueries({ queryKey: ['entity', id] });
381
- },
382
- });
383
- ```
384
-
385
- ---
386
-
387
- ## Advanced Query Patterns
388
-
389
- ### Prefetching
390
-
391
- ```typescript
392
- export function usePrefetchEntity() {
393
- const queryClient = useQueryClient();
394
-
395
- return (blogId: number, entityId: number) => {
396
- return queryClient.prefetchQuery({
397
- queryKey: ['entity', blogId, entityId],
398
- queryFn: () => myFeatureApi.getEntity(blogId, entityId),
399
- staleTime: 5 * 60 * 1000,
400
- });
401
- };
402
- }
403
-
404
- // Usage: Prefetch on hover
405
- <div onMouseEnter={() => prefetch(blogId, id)}>
406
- <Link to={`/entity/${id}`}>View</Link>
407
- </div>
408
- ```
409
-
410
- ### Cache Access Without Fetching
411
-
412
- ```typescript
413
- export function useEntityFromCache(blogId: number, entityId: number) {
414
- const queryClient = useQueryClient();
415
-
416
- // Get from cache, don't fetch if missing
417
- const directCache = queryClient.getQueryData<MyEntity>(['entity', blogId, entityId]);
418
-
419
- if (directCache) return directCache;
420
-
421
- // Try grid cache
422
- const gridCache = queryClient.getQueryData<{ rows: MyEntity[] }>(['entities-v2', blogId]);
423
-
424
- return gridCache?.rows.find(row => row.id === entityId);
425
- }
426
- ```
427
-
428
- ### Dependent Queries
429
-
430
- ```typescript
431
- // Fetch user first, then user's settings
432
- const { data: user } = useSuspenseQuery({
433
- queryKey: ['user', userId],
434
- queryFn: () => userApi.getUser(userId),
435
- });
436
-
437
- const { data: settings } = useSuspenseQuery({
438
- queryKey: ['user', userId, 'settings'],
439
- queryFn: () => settingsApi.getUserSettings(user.id),
440
- // Automatically waits for user to load due to Suspense
441
- });
442
- ```
443
-
444
- ---
445
-
446
- ## API Client Configuration
447
-
448
- ### Using apiClient
449
-
450
- ```typescript
451
- import apiClient from '@/lib/apiClient';
452
-
453
- // apiClient is a configured axios instance
454
- // Automatically includes:
455
- // - Base URL configuration
456
- // - Cookie-based authentication
457
- // - Error interceptors
458
- // - Response transformers
459
- ```
460
-
461
- **Do NOT create new axios instances** - use apiClient for consistency.
462
-
463
- ---
464
-
465
- ## Error Handling in Queries
466
-
467
- ### onError Callback
468
-
469
- ```typescript
470
- import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
471
-
472
- const { showError } = useMuiSnackbar();
473
-
474
- const { data } = useSuspenseQuery({
475
- queryKey: ['entity', id],
476
- queryFn: () => myFeatureApi.getEntity(id),
477
-
478
- // Handle errors
479
- onError: (error) => {
480
- showError('Failed to load entity');
481
- console.error('Load error:', error);
482
- },
483
- });
484
- ```
485
-
486
- ### Error Boundaries
487
-
488
- Combine with Error Boundaries for comprehensive error handling:
489
-
490
- ```typescript
491
- import { ErrorBoundary } from 'react-error-boundary';
492
-
493
- <ErrorBoundary
494
- fallback={<ErrorDisplay />}
495
- onError={(error) => console.error(error)}
496
- >
497
- <SuspenseLoader>
498
- <ComponentWithSuspenseQuery />
499
- </SuspenseLoader>
500
- </ErrorBoundary>
501
- ```
502
-
503
- ---
504
-
505
- ## Complete Examples
506
-
507
- ### Example 1: Simple Entity Fetch
508
-
509
- ```typescript
510
- import React from 'react';
511
- import { useSuspenseQuery } from '@tanstack/react-query';
512
- import { Box, Typography } from '@mui/material';
513
- import { userApi } from '../api/userApi';
514
-
515
- interface UserProfileProps {
516
- userId: string;
517
- }
518
-
519
- export const UserProfile: React.FC<UserProfileProps> = ({ userId }) => {
520
- const { data: user } = useSuspenseQuery({
521
- queryKey: ['user', userId],
522
- queryFn: () => userApi.getUser(userId),
523
- staleTime: 5 * 60 * 1000,
524
- });
525
-
526
- return (
527
- <Box>
528
- <Typography variant='h5'>{user.name}</Typography>
529
- <Typography>{user.email}</Typography>
530
- </Box>
531
- );
532
- };
533
-
534
- // Usage with Suspense
535
- <SuspenseLoader>
536
- <UserProfile userId='123' />
537
- </SuspenseLoader>
538
- ```
539
-
540
- ### Example 2: Cache-First Strategy
541
-
542
- ```typescript
543
- import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
544
- import { postApi } from '../api/postApi';
545
- import type { Post } from '../types';
546
-
547
- /**
548
- * Hook with cache-first strategy
549
- * Checks grid cache before API call
550
- */
551
- export function useSuspensePost(blogId: number, postId: number) {
552
- const queryClient = useQueryClient();
553
-
554
- return useSuspenseQuery<Post, Error>({
555
- queryKey: ['post', blogId, postId],
556
- queryFn: async () => {
557
- // 1. Check grid cache first
558
- const gridCache = queryClient.getQueryData<{ rows: Post[] }>([
559
- 'posts-v2',
560
- blogId,
561
- 'summary'
562
- ]) || queryClient.getQueryData<{ rows: Post[] }>([
563
- 'posts-v2',
564
- blogId,
565
- 'flat'
566
- ]);
567
-
568
- if (gridCache?.rows) {
569
- const cached = gridCache.rows.find(row => row.S_ID === postId);
570
- if (cached) {
571
- return cached; // Reuse grid data
572
- }
573
- }
574
-
575
- // 2. Not in cache, fetch directly
576
- return postApi.getPost(blogId, postId);
577
- },
578
- staleTime: 5 * 60 * 1000,
579
- gcTime: 10 * 60 * 1000,
580
- refetchOnWindowFocus: false,
581
- });
582
- }
583
- ```
584
-
585
- **Benefits:**
586
- - Avoids duplicate API calls
587
- - Instant data if already loaded
588
- - Falls back to API if not cached
589
-
590
- ### Example 3: Parallel Fetching
591
-
592
- ```typescript
593
- import { useSuspenseQueries } from '@tanstack/react-query';
594
-
595
- export const Dashboard: React.FC = () => {
596
- const [statsQuery, projectsQuery, notificationsQuery] = useSuspenseQueries({
597
- queries: [
598
- {
599
- queryKey: ['stats'],
600
- queryFn: () => statsApi.getStats(),
601
- },
602
- {
603
- queryKey: ['projects', 'active'],
604
- queryFn: () => projectsApi.getActiveProjects(),
605
- },
606
- {
607
- queryKey: ['notifications', 'unread'],
608
- queryFn: () => notificationsApi.getUnread(),
609
- },
610
- ],
611
- });
612
-
613
- return (
614
- <Box>
615
- <StatsCard data={statsQuery.data} />
616
- <ProjectsList projects={projectsQuery.data} />
617
- <Notifications items={notificationsQuery.data} />
618
- </Box>
619
- );
620
- };
621
- ```
622
-
623
- ---
624
-
625
- ## Mutations with Cache Invalidation
626
-
627
- ### Update Mutation
628
-
629
- ```typescript
630
- import { useMutation, useQueryClient } from '@tanstack/react-query';
631
- import { postApi } from '../api/postApi';
632
- import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
633
-
634
- export const useUpdatePost = () => {
635
- const queryClient = useQueryClient();
636
- const { showSuccess, showError } = useMuiSnackbar();
637
-
638
- return useMutation({
639
- mutationFn: ({ blogId, postId, data }: UpdateParams) =>
640
- postApi.updatePost(blogId, postId, data),
641
-
642
- onSuccess: (data, variables) => {
643
- // Invalidate specific post
644
- queryClient.invalidateQueries({
645
- queryKey: ['post', variables.blogId, variables.postId]
646
- });
647
-
648
- // Invalidate list to refresh grid
649
- queryClient.invalidateQueries({
650
- queryKey: ['posts-v2', variables.blogId]
651
- });
652
-
653
- showSuccess('Post updated');
654
- },
655
-
656
- onError: (error) => {
657
- showError('Failed to update post');
658
- console.error('Update error:', error);
659
- },
660
- });
661
- };
662
-
663
- // Usage
664
- const updatePost = useUpdatePost();
665
-
666
- const handleSave = () => {
667
- updatePost.mutate({
668
- blogId: 123,
669
- postId: 456,
670
- data: { responses: { '101': 'value' } }
671
- });
672
- };
673
- ```
674
-
675
- ### Delete Mutation
676
-
677
- ```typescript
678
- export const useDeletePost = () => {
679
- const queryClient = useQueryClient();
680
- const { showSuccess, showError } = useMuiSnackbar();
681
-
682
- return useMutation({
683
- mutationFn: ({ blogId, postId }: DeleteParams) =>
684
- postApi.deletePost(blogId, postId),
685
-
686
- onSuccess: (data, variables) => {
687
- // Remove from cache manually (optimistic)
688
- queryClient.setQueryData<{ rows: Post[] }>(
689
- ['posts-v2', variables.blogId],
690
- (old) => ({
691
- ...old,
692
- rows: old?.rows.filter(row => row.S_ID !== variables.postId) || []
693
- })
694
- );
695
-
696
- showSuccess('Post deleted');
697
- },
698
-
699
- onError: (error, variables) => {
700
- // Rollback - refetch to get accurate state
701
- queryClient.invalidateQueries({
702
- queryKey: ['posts-v2', variables.blogId]
703
- });
704
- showError('Failed to delete post');
705
- },
706
- });
707
- };
708
- ```
709
-
710
- ---
711
-
712
- ## Query Configuration Best Practices
713
-
714
- ### Default Configuration
715
-
716
- ```typescript
717
- // In QueryClientProvider setup
718
- const queryClient = new QueryClient({
719
- defaultOptions: {
720
- queries: {
721
- staleTime: 1000 * 60 * 5, // 5 minutes
722
- gcTime: 1000 * 60 * 10, // 10 minutes (was cacheTime)
723
- refetchOnWindowFocus: false, // Don't refetch on focus
724
- refetchOnMount: false, // Don't refetch on mount if fresh
725
- retry: 1, // Retry failed queries once
726
- },
727
- },
728
- });
729
- ```
730
-
731
- ### Per-Query Overrides
732
-
733
- ```typescript
734
- // Frequently changing data - shorter staleTime
735
- useSuspenseQuery({
736
- queryKey: ['notifications', 'unread'],
737
- queryFn: () => notificationApi.getUnread(),
738
- staleTime: 30 * 1000, // 30 seconds
739
- });
740
-
741
- // Rarely changing data - longer staleTime
742
- useSuspenseQuery({
743
- queryKey: ['form', blogId, 'structure'],
744
- queryFn: () => formApi.getStructure(blogId),
745
- staleTime: 30 * 60 * 1000, // 30 minutes
746
- });
747
- ```
748
-
749
- ---
750
-
751
- ## Summary
752
-
753
- **Modern Data Fetching Recipe:**
754
-
755
- 1. **Create API Service**: `features/X/api/XApi.ts` using apiClient
756
- 2. **Use useSuspenseQuery**: In components wrapped by SuspenseLoader
757
- 3. **Cache-First**: Check grid cache before API call
758
- 4. **Query Keys**: Consistent naming ['entity', id]
759
- 5. **Route Format**: `/blog/route` NOT `/api/blog/route`
760
- 6. **Mutations**: invalidateQueries after success
761
- 7. **Error Handling**: onError + useMuiSnackbar
762
- 8. **Type Safety**: Type all parameters and returns
763
-
764
- **See Also:**
765
- - [component-patterns.md](component-patterns.md) - Suspense integration
766
- - [loading-and-error-states.md](loading-and-error-states.md) - SuspenseLoader usage
1
+ # Data Fetching Patterns
2
+
3
+ Modern data fetching using TanStack Query with Suspense boundaries, cache-first strategies, and centralized API services.
4
+
5
+ ---
6
+
7
+ ## PRIMARY PATTERN: useSuspenseQuery
8
+
9
+ ### Why useSuspenseQuery?
10
+
11
+ For **all new components**, use `useSuspenseQuery` instead of regular `useQuery`:
12
+
13
+ **Benefits:**
14
+ - No `isLoading` checks needed
15
+ - Integrates with Suspense boundaries
16
+ - Cleaner component code
17
+ - Consistent loading UX
18
+ - Better error handling with error boundaries
19
+
20
+ ### Basic Pattern
21
+
22
+ ```typescript
23
+ import { useSuspenseQuery } from '@tanstack/react-query';
24
+ import { myFeatureApi } from '../api/myFeatureApi';
25
+
26
+ export const MyComponent: React.FC<Props> = ({ id }) => {
27
+ // No isLoading - Suspense handles it!
28
+ const { data } = useSuspenseQuery({
29
+ queryKey: ['myEntity', id],
30
+ queryFn: () => myFeatureApi.getEntity(id),
31
+ });
32
+
33
+ // data is ALWAYS defined here (not undefined | Data)
34
+ return <div>{data.name}</div>;
35
+ };
36
+
37
+ // Wrap in Suspense boundary
38
+ <SuspenseLoader>
39
+ <MyComponent id={123} />
40
+ </SuspenseLoader>
41
+ ```
42
+
43
+ ### useSuspenseQuery vs useQuery
44
+
45
+ | Feature | useSuspenseQuery | useQuery |
46
+ |---------|------------------|----------|
47
+ | Loading state | Handled by Suspense | Manual `isLoading` check |
48
+ | Data type | Always defined | `Data \| undefined` |
49
+ | Use with | Suspense boundaries | Traditional components |
50
+ | Recommended for | **NEW components** | Legacy code only |
51
+ | Error handling | Error boundaries | Manual error state |
52
+
53
+ **When to use regular useQuery:**
54
+ - Maintaining legacy code
55
+ - Very simple cases without Suspense
56
+ - Polling with background updates
57
+
58
+ **For new components: Always prefer useSuspenseQuery**
59
+
60
+ ---
61
+
62
+ ## Cache-First Strategy
63
+
64
+ ### Cache-First Pattern Example
65
+
66
+ **Smart caching** reduces API calls by checking React Query cache first:
67
+
68
+ ```typescript
69
+ import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
70
+ import { postApi } from '../api/postApi';
71
+
72
+ export function useSuspensePost(postId: number) {
73
+ const queryClient = useQueryClient();
74
+
75
+ return useSuspenseQuery({
76
+ queryKey: ['post', postId],
77
+ queryFn: async () => {
78
+ // Strategy 1: Try to get from list cache first
79
+ const cachedListData = queryClient.getQueryData<{ posts: Post[] }>([
80
+ 'posts',
81
+ 'list'
82
+ ]);
83
+
84
+ if (cachedListData?.posts) {
85
+ const cachedPost = cachedListData.posts.find(
86
+ (post) => post.id === postId
87
+ );
88
+
89
+ if (cachedPost) {
90
+ return cachedPost; // Return from cache!
91
+ }
92
+ }
93
+
94
+ // Strategy 2: Not in cache, fetch from API
95
+ return postApi.getPost(postId);
96
+ },
97
+ staleTime: 5 * 60 * 1000, // Consider fresh for 5 minutes
98
+ gcTime: 10 * 60 * 1000, // Keep in cache for 10 minutes
99
+ refetchOnWindowFocus: false, // Don't refetch on focus
100
+ });
101
+ }
102
+ ```
103
+
104
+ **Key Points:**
105
+ - Check grid/list cache before API call
106
+ - Avoids redundant requests
107
+ - `staleTime`: How long data is considered fresh
108
+ - `gcTime`: How long unused data stays in cache
109
+ - `refetchOnWindowFocus: false`: User preference
110
+
111
+ ---
112
+
113
+ ## Parallel Data Fetching
114
+
115
+ ### useSuspenseQueries
116
+
117
+ When fetching multiple independent resources:
118
+
119
+ ```typescript
120
+ import { useSuspenseQueries } from '@tanstack/react-query';
121
+
122
+ export const MyComponent: React.FC = () => {
123
+ const [userQuery, settingsQuery, preferencesQuery] = useSuspenseQueries({
124
+ queries: [
125
+ {
126
+ queryKey: ['user'],
127
+ queryFn: () => userApi.getCurrentUser(),
128
+ },
129
+ {
130
+ queryKey: ['settings'],
131
+ queryFn: () => settingsApi.getSettings(),
132
+ },
133
+ {
134
+ queryKey: ['preferences'],
135
+ queryFn: () => preferencesApi.getPreferences(),
136
+ },
137
+ ],
138
+ });
139
+
140
+ // All data available, Suspense handles loading
141
+ const user = userQuery.data;
142
+ const settings = settingsQuery.data;
143
+ const preferences = preferencesQuery.data;
144
+
145
+ return <Display user={user} settings={settings} prefs={preferences} />;
146
+ };
147
+ ```
148
+
149
+ **Benefits:**
150
+ - All queries in parallel
151
+ - Single Suspense boundary
152
+ - Type-safe results
153
+
154
+ ---
155
+
156
+ ## Query Keys Organization
157
+
158
+ ### Naming Convention
159
+
160
+ ```typescript
161
+ // Entity list
162
+ ['entities', blogId]
163
+ ['entities', blogId, 'summary'] // With view mode
164
+ ['entities', blogId, 'flat']
165
+
166
+ // Single entity
167
+ ['entity', blogId, entityId]
168
+
169
+ // Related data
170
+ ['entity', entityId, 'history']
171
+ ['entity', entityId, 'comments']
172
+
173
+ // User-specific
174
+ ['user', userId, 'profile']
175
+ ['user', userId, 'permissions']
176
+ ```
177
+
178
+ **Rules:**
179
+ - Start with entity name (plural for lists, singular for one)
180
+ - Include IDs for specificity
181
+ - Add view mode / relationship at end
182
+ - Consistent across app
183
+
184
+ ### Query Key Examples
185
+
186
+ ```typescript
187
+ // From useSuspensePost.ts
188
+ queryKey: ['post', blogId, postId]
189
+ queryKey: ['posts-v2', blogId, 'summary']
190
+
191
+ // Invalidation patterns
192
+ queryClient.invalidateQueries({ queryKey: ['post', blogId] }); // All posts for form
193
+ queryClient.invalidateQueries({ queryKey: ['post'] }); // All posts
194
+ ```
195
+
196
+ ---
197
+
198
+ ## API Service Layer Pattern
199
+
200
+ ### File Structure
201
+
202
+ Create centralized API service per feature:
203
+
204
+ ```
205
+ features/
206
+ my-feature/
207
+ api/
208
+ myFeatureApi.ts # Service layer
209
+ ```
210
+
211
+ ### Service Pattern (from postApi.ts)
212
+
213
+ ```typescript
214
+ /**
215
+ * Centralized API service for my-feature operations
216
+ * Uses apiClient for consistent error handling
217
+ */
218
+ import apiClient from '@/lib/apiClient';
219
+ import type { MyEntity, UpdatePayload } from '../types';
220
+
221
+ export const myFeatureApi = {
222
+ /**
223
+ * Fetch a single entity
224
+ */
225
+ getEntity: async (blogId: number, entityId: number): Promise<MyEntity> => {
226
+ const { data } = await apiClient.get(
227
+ `/blog/entities/${blogId}/${entityId}`
228
+ );
229
+ return data;
230
+ },
231
+
232
+ /**
233
+ * Fetch all entities for a form
234
+ */
235
+ getEntities: async (blogId: number, view: 'summary' | 'flat'): Promise<MyEntity[]> => {
236
+ const { data } = await apiClient.get(
237
+ `/blog/entities/${blogId}`,
238
+ { params: { view } }
239
+ );
240
+ return data.rows;
241
+ },
242
+
243
+ /**
244
+ * Update entity
245
+ */
246
+ updateEntity: async (
247
+ blogId: number,
248
+ entityId: number,
249
+ payload: UpdatePayload
250
+ ): Promise<MyEntity> => {
251
+ const { data } = await apiClient.put(
252
+ `/blog/entities/${blogId}/${entityId}`,
253
+ payload
254
+ );
255
+ return data;
256
+ },
257
+
258
+ /**
259
+ * Delete entity
260
+ */
261
+ deleteEntity: async (blogId: number, entityId: number): Promise<void> => {
262
+ await apiClient.delete(`/blog/entities/${blogId}/${entityId}`);
263
+ },
264
+ };
265
+ ```
266
+
267
+ **Key Points:**
268
+ - Export single object with methods
269
+ - Use `apiClient` (axios instance from `@/lib/apiClient`)
270
+ - Type-safe parameters and returns
271
+ - JSDoc comments for each method
272
+ - Centralized error handling (apiClient handles it)
273
+
274
+ ---
275
+
276
+ ## Route Format Rules (IMPORTANT)
277
+
278
+ ### Correct Format
279
+
280
+ ```typescript
281
+ // ✅ CORRECT - Direct service path
282
+ await apiClient.get('/blog/posts/123');
283
+ await apiClient.post('/projects/create', data);
284
+ await apiClient.put('/users/update/456', updates);
285
+ await apiClient.get('/email/templates');
286
+
287
+ // ❌ WRONG - Do NOT add /api/ prefix
288
+ await apiClient.get('/api/blog/posts/123'); // WRONG!
289
+ await apiClient.post('/api/projects/create', data); // WRONG!
290
+ ```
291
+
292
+ **Microservice Routing:**
293
+ - Form service: `/blog/*`
294
+ - Projects service: `/projects/*`
295
+ - Email service: `/email/*`
296
+ - Users service: `/users/*`
297
+
298
+ **Why:** API routing is handled by proxy configuration, no `/api/` prefix needed.
299
+
300
+ ---
301
+
302
+ ## Mutations
303
+
304
+ ### Basic Mutation Pattern
305
+
306
+ ```typescript
307
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
308
+ import { myFeatureApi } from '../api/myFeatureApi';
309
+ import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
310
+
311
+ export const MyComponent: React.FC = () => {
312
+ const queryClient = useQueryClient();
313
+ const { showSuccess, showError } = useMuiSnackbar();
314
+
315
+ const updateMutation = useMutation({
316
+ mutationFn: (payload: UpdatePayload) =>
317
+ myFeatureApi.updateEntity(blogId, entityId, payload),
318
+
319
+ onSuccess: () => {
320
+ // Invalidate and refetch
321
+ queryClient.invalidateQueries({
322
+ queryKey: ['entity', blogId, entityId]
323
+ });
324
+ showSuccess('Entity updated successfully');
325
+ },
326
+
327
+ onError: (error) => {
328
+ showError('Failed to update entity');
329
+ console.error('Update error:', error);
330
+ },
331
+ });
332
+
333
+ const handleUpdate = () => {
334
+ updateMutation.mutate({ name: 'New Name' });
335
+ };
336
+
337
+ return (
338
+ <Button
339
+ onClick={handleUpdate}
340
+ disabled={updateMutation.isPending}
341
+ >
342
+ {updateMutation.isPending ? 'Updating...' : 'Update'}
343
+ </Button>
344
+ );
345
+ };
346
+ ```
347
+
348
+ ### Optimistic Updates
349
+
350
+ ```typescript
351
+ const updateMutation = useMutation({
352
+ mutationFn: (payload) => myFeatureApi.update(id, payload),
353
+
354
+ // Optimistic update
355
+ onMutate: async (newData) => {
356
+ // Cancel outgoing refetches
357
+ await queryClient.cancelQueries({ queryKey: ['entity', id] });
358
+
359
+ // Snapshot current value
360
+ const previousData = queryClient.getQueryData(['entity', id]);
361
+
362
+ // Optimistically update
363
+ queryClient.setQueryData(['entity', id], (old) => ({
364
+ ...old,
365
+ ...newData,
366
+ }));
367
+
368
+ // Return rollback function
369
+ return { previousData };
370
+ },
371
+
372
+ // Rollback on error
373
+ onError: (err, newData, context) => {
374
+ queryClient.setQueryData(['entity', id], context.previousData);
375
+ showError('Update failed');
376
+ },
377
+
378
+ // Refetch after success or error
379
+ onSettled: () => {
380
+ queryClient.invalidateQueries({ queryKey: ['entity', id] });
381
+ },
382
+ });
383
+ ```
384
+
385
+ ---
386
+
387
+ ## Advanced Query Patterns
388
+
389
+ ### Prefetching
390
+
391
+ ```typescript
392
+ export function usePrefetchEntity() {
393
+ const queryClient = useQueryClient();
394
+
395
+ return (blogId: number, entityId: number) => {
396
+ return queryClient.prefetchQuery({
397
+ queryKey: ['entity', blogId, entityId],
398
+ queryFn: () => myFeatureApi.getEntity(blogId, entityId),
399
+ staleTime: 5 * 60 * 1000,
400
+ });
401
+ };
402
+ }
403
+
404
+ // Usage: Prefetch on hover
405
+ <div onMouseEnter={() => prefetch(blogId, id)}>
406
+ <Link to={`/entity/${id}`}>View</Link>
407
+ </div>
408
+ ```
409
+
410
+ ### Cache Access Without Fetching
411
+
412
+ ```typescript
413
+ export function useEntityFromCache(blogId: number, entityId: number) {
414
+ const queryClient = useQueryClient();
415
+
416
+ // Get from cache, don't fetch if missing
417
+ const directCache = queryClient.getQueryData<MyEntity>(['entity', blogId, entityId]);
418
+
419
+ if (directCache) return directCache;
420
+
421
+ // Try grid cache
422
+ const gridCache = queryClient.getQueryData<{ rows: MyEntity[] }>(['entities-v2', blogId]);
423
+
424
+ return gridCache?.rows.find(row => row.id === entityId);
425
+ }
426
+ ```
427
+
428
+ ### Dependent Queries
429
+
430
+ ```typescript
431
+ // Fetch user first, then user's settings
432
+ const { data: user } = useSuspenseQuery({
433
+ queryKey: ['user', userId],
434
+ queryFn: () => userApi.getUser(userId),
435
+ });
436
+
437
+ const { data: settings } = useSuspenseQuery({
438
+ queryKey: ['user', userId, 'settings'],
439
+ queryFn: () => settingsApi.getUserSettings(user.id),
440
+ // Automatically waits for user to load due to Suspense
441
+ });
442
+ ```
443
+
444
+ ---
445
+
446
+ ## API Client Configuration
447
+
448
+ ### Using apiClient
449
+
450
+ ```typescript
451
+ import apiClient from '@/lib/apiClient';
452
+
453
+ // apiClient is a configured axios instance
454
+ // Automatically includes:
455
+ // - Base URL configuration
456
+ // - Cookie-based authentication
457
+ // - Error interceptors
458
+ // - Response transformers
459
+ ```
460
+
461
+ **Do NOT create new axios instances** - use apiClient for consistency.
462
+
463
+ ---
464
+
465
+ ## Error Handling in Queries
466
+
467
+ ### onError Callback
468
+
469
+ ```typescript
470
+ import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
471
+
472
+ const { showError } = useMuiSnackbar();
473
+
474
+ const { data } = useSuspenseQuery({
475
+ queryKey: ['entity', id],
476
+ queryFn: () => myFeatureApi.getEntity(id),
477
+
478
+ // Handle errors
479
+ onError: (error) => {
480
+ showError('Failed to load entity');
481
+ console.error('Load error:', error);
482
+ },
483
+ });
484
+ ```
485
+
486
+ ### Error Boundaries
487
+
488
+ Combine with Error Boundaries for comprehensive error handling:
489
+
490
+ ```typescript
491
+ import { ErrorBoundary } from 'react-error-boundary';
492
+
493
+ <ErrorBoundary
494
+ fallback={<ErrorDisplay />}
495
+ onError={(error) => console.error(error)}
496
+ >
497
+ <SuspenseLoader>
498
+ <ComponentWithSuspenseQuery />
499
+ </SuspenseLoader>
500
+ </ErrorBoundary>
501
+ ```
502
+
503
+ ---
504
+
505
+ ## Complete Examples
506
+
507
+ ### Example 1: Simple Entity Fetch
508
+
509
+ ```typescript
510
+ import React from 'react';
511
+ import { useSuspenseQuery } from '@tanstack/react-query';
512
+ import { Box, Typography } from '@mui/material';
513
+ import { userApi } from '../api/userApi';
514
+
515
+ interface UserProfileProps {
516
+ userId: string;
517
+ }
518
+
519
+ export const UserProfile: React.FC<UserProfileProps> = ({ userId }) => {
520
+ const { data: user } = useSuspenseQuery({
521
+ queryKey: ['user', userId],
522
+ queryFn: () => userApi.getUser(userId),
523
+ staleTime: 5 * 60 * 1000,
524
+ });
525
+
526
+ return (
527
+ <Box>
528
+ <Typography variant='h5'>{user.name}</Typography>
529
+ <Typography>{user.email}</Typography>
530
+ </Box>
531
+ );
532
+ };
533
+
534
+ // Usage with Suspense
535
+ <SuspenseLoader>
536
+ <UserProfile userId='123' />
537
+ </SuspenseLoader>
538
+ ```
539
+
540
+ ### Example 2: Cache-First Strategy
541
+
542
+ ```typescript
543
+ import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';
544
+ import { postApi } from '../api/postApi';
545
+ import type { Post } from '../types';
546
+
547
+ /**
548
+ * Hook with cache-first strategy
549
+ * Checks grid cache before API call
550
+ */
551
+ export function useSuspensePost(blogId: number, postId: number) {
552
+ const queryClient = useQueryClient();
553
+
554
+ return useSuspenseQuery<Post, Error>({
555
+ queryKey: ['post', blogId, postId],
556
+ queryFn: async () => {
557
+ // 1. Check grid cache first
558
+ const gridCache = queryClient.getQueryData<{ rows: Post[] }>([
559
+ 'posts-v2',
560
+ blogId,
561
+ 'summary'
562
+ ]) || queryClient.getQueryData<{ rows: Post[] }>([
563
+ 'posts-v2',
564
+ blogId,
565
+ 'flat'
566
+ ]);
567
+
568
+ if (gridCache?.rows) {
569
+ const cached = gridCache.rows.find(row => row.S_ID === postId);
570
+ if (cached) {
571
+ return cached; // Reuse grid data
572
+ }
573
+ }
574
+
575
+ // 2. Not in cache, fetch directly
576
+ return postApi.getPost(blogId, postId);
577
+ },
578
+ staleTime: 5 * 60 * 1000,
579
+ gcTime: 10 * 60 * 1000,
580
+ refetchOnWindowFocus: false,
581
+ });
582
+ }
583
+ ```
584
+
585
+ **Benefits:**
586
+ - Avoids duplicate API calls
587
+ - Instant data if already loaded
588
+ - Falls back to API if not cached
589
+
590
+ ### Example 3: Parallel Fetching
591
+
592
+ ```typescript
593
+ import { useSuspenseQueries } from '@tanstack/react-query';
594
+
595
+ export const Dashboard: React.FC = () => {
596
+ const [statsQuery, projectsQuery, notificationsQuery] = useSuspenseQueries({
597
+ queries: [
598
+ {
599
+ queryKey: ['stats'],
600
+ queryFn: () => statsApi.getStats(),
601
+ },
602
+ {
603
+ queryKey: ['projects', 'active'],
604
+ queryFn: () => projectsApi.getActiveProjects(),
605
+ },
606
+ {
607
+ queryKey: ['notifications', 'unread'],
608
+ queryFn: () => notificationsApi.getUnread(),
609
+ },
610
+ ],
611
+ });
612
+
613
+ return (
614
+ <Box>
615
+ <StatsCard data={statsQuery.data} />
616
+ <ProjectsList projects={projectsQuery.data} />
617
+ <Notifications items={notificationsQuery.data} />
618
+ </Box>
619
+ );
620
+ };
621
+ ```
622
+
623
+ ---
624
+
625
+ ## Mutations with Cache Invalidation
626
+
627
+ ### Update Mutation
628
+
629
+ ```typescript
630
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
631
+ import { postApi } from '../api/postApi';
632
+ import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';
633
+
634
+ export const useUpdatePost = () => {
635
+ const queryClient = useQueryClient();
636
+ const { showSuccess, showError } = useMuiSnackbar();
637
+
638
+ return useMutation({
639
+ mutationFn: ({ blogId, postId, data }: UpdateParams) =>
640
+ postApi.updatePost(blogId, postId, data),
641
+
642
+ onSuccess: (data, variables) => {
643
+ // Invalidate specific post
644
+ queryClient.invalidateQueries({
645
+ queryKey: ['post', variables.blogId, variables.postId]
646
+ });
647
+
648
+ // Invalidate list to refresh grid
649
+ queryClient.invalidateQueries({
650
+ queryKey: ['posts-v2', variables.blogId]
651
+ });
652
+
653
+ showSuccess('Post updated');
654
+ },
655
+
656
+ onError: (error) => {
657
+ showError('Failed to update post');
658
+ console.error('Update error:', error);
659
+ },
660
+ });
661
+ };
662
+
663
+ // Usage
664
+ const updatePost = useUpdatePost();
665
+
666
+ const handleSave = () => {
667
+ updatePost.mutate({
668
+ blogId: 123,
669
+ postId: 456,
670
+ data: { responses: { '101': 'value' } }
671
+ });
672
+ };
673
+ ```
674
+
675
+ ### Delete Mutation
676
+
677
+ ```typescript
678
+ export const useDeletePost = () => {
679
+ const queryClient = useQueryClient();
680
+ const { showSuccess, showError } = useMuiSnackbar();
681
+
682
+ return useMutation({
683
+ mutationFn: ({ blogId, postId }: DeleteParams) =>
684
+ postApi.deletePost(blogId, postId),
685
+
686
+ onSuccess: (data, variables) => {
687
+ // Remove from cache manually (optimistic)
688
+ queryClient.setQueryData<{ rows: Post[] }>(
689
+ ['posts-v2', variables.blogId],
690
+ (old) => ({
691
+ ...old,
692
+ rows: old?.rows.filter(row => row.S_ID !== variables.postId) || []
693
+ })
694
+ );
695
+
696
+ showSuccess('Post deleted');
697
+ },
698
+
699
+ onError: (error, variables) => {
700
+ // Rollback - refetch to get accurate state
701
+ queryClient.invalidateQueries({
702
+ queryKey: ['posts-v2', variables.blogId]
703
+ });
704
+ showError('Failed to delete post');
705
+ },
706
+ });
707
+ };
708
+ ```
709
+
710
+ ---
711
+
712
+ ## Query Configuration Best Practices
713
+
714
+ ### Default Configuration
715
+
716
+ ```typescript
717
+ // In QueryClientProvider setup
718
+ const queryClient = new QueryClient({
719
+ defaultOptions: {
720
+ queries: {
721
+ staleTime: 1000 * 60 * 5, // 5 minutes
722
+ gcTime: 1000 * 60 * 10, // 10 minutes (was cacheTime)
723
+ refetchOnWindowFocus: false, // Don't refetch on focus
724
+ refetchOnMount: false, // Don't refetch on mount if fresh
725
+ retry: 1, // Retry failed queries once
726
+ },
727
+ },
728
+ });
729
+ ```
730
+
731
+ ### Per-Query Overrides
732
+
733
+ ```typescript
734
+ // Frequently changing data - shorter staleTime
735
+ useSuspenseQuery({
736
+ queryKey: ['notifications', 'unread'],
737
+ queryFn: () => notificationApi.getUnread(),
738
+ staleTime: 30 * 1000, // 30 seconds
739
+ });
740
+
741
+ // Rarely changing data - longer staleTime
742
+ useSuspenseQuery({
743
+ queryKey: ['form', blogId, 'structure'],
744
+ queryFn: () => formApi.getStructure(blogId),
745
+ staleTime: 30 * 60 * 1000, // 30 minutes
746
+ });
747
+ ```
748
+
749
+ ---
750
+
751
+ ## Summary
752
+
753
+ **Modern Data Fetching Recipe:**
754
+
755
+ 1. **Create API Service**: `features/X/api/XApi.ts` using apiClient
756
+ 2. **Use useSuspenseQuery**: In components wrapped by SuspenseLoader
757
+ 3. **Cache-First**: Check grid cache before API call
758
+ 4. **Query Keys**: Consistent naming ['entity', id]
759
+ 5. **Route Format**: `/blog/route` NOT `/api/blog/route`
760
+ 6. **Mutations**: invalidateQueries after success
761
+ 7. **Error Handling**: onError + useMuiSnackbar
762
+ 8. **Type Safety**: Type all parameters and returns
763
+
764
+ **See Also:**
765
+ - [component-patterns.md](component-patterns.md) - Suspense integration
766
+ - [loading-and-error-states.md](loading-and-error-states.md) - SuspenseLoader usage
767
767
  - [complete-examples.md](complete-examples.md) - Full working examples