cokit-cli 1.0.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/LICENSE +32 -32
  2. package/README.FLOW.md +237 -237
  3. package/README.md +131 -92
  4. package/agents/brainstormer.agent.md +71 -71
  5. package/agents/code-reviewer.agent.md +136 -136
  6. package/agents/code-simplifier.agent.md +43 -0
  7. package/agents/debugger.agent.md +128 -128
  8. package/agents/docs-manager.agent.md +121 -121
  9. package/agents/fullstack-developer.agent.md +52 -0
  10. package/agents/git-manager.agent.md +390 -390
  11. package/agents/planner.agent.md +94 -94
  12. package/agents/researcher.agent.md +32 -32
  13. package/agents/scout.agent.md +107 -107
  14. package/agents/tester.agent.md +117 -117
  15. package/agents/ui-ux-designer.agent.md +58 -0
  16. package/bin/cokit.js +4 -4
  17. package/collections/ck-core.collection.yml +28 -28
  18. package/collections/ck-development-rules.collection.yml +18 -18
  19. package/collections/ck-documentation.collection.yml +14 -14
  20. package/collections/ck-git-workflow.collection.yml +12 -12
  21. package/collections/ck-orchestration.collection.yml +16 -16
  22. package/docs/README.md +75 -108
  23. package/docs/code-standards.md +68 -0
  24. package/docs/codebase-summary.md +263 -0
  25. package/docs/cokit-commands-usage-guide.md +139 -0
  26. package/docs/cokit-comprehensive-mapping-guide.md +361 -374
  27. package/docs/cokit-instruction-guide.html +3004 -0
  28. package/docs/cokit-slides.md +212 -222
  29. package/docs/cokit-sync-and-maintenance-guide.md +414 -0
  30. package/docs/cokit-team-presentation.md +356 -378
  31. package/docs/copilot-processing-flow.md +215 -212
  32. package/docs/guide-next-steps-speckit-cokit-implementation.md +187 -0
  33. package/docs/images/cokit-command-finder-final.png +0 -0
  34. package/docs/images/cokit-highlight-fix.png +0 -0
  35. package/docs/images/cokit-highlight-test.png +0 -0
  36. package/docs/migration-guide.md +133 -133
  37. package/docs/project-overview-pdr.md +45 -0
  38. package/docs/project-roadmap.md +308 -280
  39. package/docs/system-architecture.md +81 -0
  40. package/instructions/ck-backend.instructions.md +48 -48
  41. package/instructions/ck-development.instructions.md +54 -54
  42. package/instructions/ck-frontend.instructions.md +44 -44
  43. package/instructions/ck-research.instructions.md +167 -167
  44. package/instructions/ck-testing.instructions.md +36 -36
  45. package/package.json +71 -42
  46. package/prompts/ck-ask.prompt.md +66 -57
  47. package/prompts/ck-bootstrap.prompt.md +147 -136
  48. package/prompts/ck-brainstorm.prompt.md +86 -105
  49. package/prompts/ck-cook.prompt.md +95 -97
  50. package/prompts/ck-debug.prompt.md +114 -14
  51. package/prompts/ck-docs.prompt.md +101 -51
  52. package/prompts/ck-fix.prompt.md +52 -44
  53. package/prompts/ck-git.prompt.md +104 -79
  54. package/{templates/repo/.github/prompts/ck-ck-help.prompt.md → prompts/ck-help.prompt.md} +140 -112
  55. package/prompts/ck-journal.prompt.md +17 -0
  56. package/prompts/ck-plan-fast.prompt.md +85 -0
  57. package/prompts/ck-plan-hard.prompt.md +112 -0
  58. package/prompts/ck-plan.prompt.md +38 -80
  59. package/prompts/ck-preview.prompt.md +93 -0
  60. package/{templates/repo/.github/prompts/ck-review-codebase.prompt.md → prompts/ck-review.prompt.md} +59 -44
  61. package/prompts/ck-scout.prompt.md +84 -25
  62. package/prompts/ck-simplify.prompt.md +46 -0
  63. package/prompts/ck-spec-analyze.prompt.md +203 -0
  64. package/prompts/ck-spec-checklist.prompt.md +310 -0
  65. package/prompts/ck-spec-clarify.prompt.md +197 -0
  66. package/prompts/ck-spec-constitution.prompt.md +97 -0
  67. package/prompts/ck-spec-implement.prompt.md +160 -0
  68. package/prompts/ck-spec-plan.prompt.md +108 -0
  69. package/prompts/ck-spec-specify.prompt.md +270 -0
  70. package/prompts/ck-spec-tasks.prompt.md +193 -0
  71. package/prompts/ck-spec-taskstoissues.prompt.md +48 -0
  72. package/prompts/ck-test.prompt.md +19 -10
  73. package/prompts/ck-watzup.prompt.md +19 -0
  74. package/skills/INSTALLATION.md +311 -0
  75. package/skills/README.md +134 -0
  76. package/skills/THIRD_PARTY_NOTICES.md +405 -0
  77. package/skills/agent-browser/SKILL.md +292 -0
  78. package/skills/agent-browser/references/.gitkeep +0 -0
  79. package/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  80. package/skills/agent_skills_spec.md +55 -0
  81. package/skills/{ck-backend-development → backend-development}/SKILL.md +96 -96
  82. package/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  83. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-architecture.md +454 -454
  84. package/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  85. package/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  86. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-debugging.md +904 -904
  87. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-devops.md +494 -494
  88. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-mindset.md +387 -387
  89. package/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  90. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-security.md +340 -290
  91. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-technologies.md +300 -290
  92. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-testing.md +484 -561
  93. package/skills/brainstorm/SKILL.md +76 -0
  94. package/{templates/repo/.github/skills/ck-code-review → skills/code-review}/SKILL.md +143 -143
  95. package/skills/{ck-code-review → code-review}/references/code-review-reception.md +1 -1
  96. package/skills/common/README.md +120 -0
  97. package/skills/common/api_key_helper.py +411 -0
  98. package/skills/common/api_key_rotator.py +248 -0
  99. package/skills/context-engineering/SKILL.md +107 -0
  100. package/skills/context-engineering/references/context-compression.md +84 -0
  101. package/skills/context-engineering/references/context-degradation.md +93 -0
  102. package/skills/context-engineering/references/context-fundamentals.md +75 -0
  103. package/skills/context-engineering/references/context-optimization.md +82 -0
  104. package/skills/context-engineering/references/evaluation.md +89 -0
  105. package/skills/context-engineering/references/memory-systems.md +88 -0
  106. package/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  107. package/skills/context-engineering/references/project-development.md +97 -0
  108. package/skills/context-engineering/references/runtime-awareness.md +202 -0
  109. package/skills/context-engineering/references/tool-design.md +86 -0
  110. package/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  111. package/skills/context-engineering/scripts/context_analyzer.py +317 -0
  112. package/skills/cook/README.md +86 -0
  113. package/skills/cook/SKILL.md +94 -0
  114. package/skills/cook/references/intent-detection.md +101 -0
  115. package/skills/cook/references/review-cycle.md +75 -0
  116. package/skills/cook/references/subagent-patterns.md +75 -0
  117. package/skills/cook/references/workflow-steps.md +140 -0
  118. package/skills/databases/SKILL.md +112 -0
  119. package/skills/databases/analytics.md +198 -0
  120. package/skills/databases/db-design.md +188 -0
  121. package/skills/databases/incremental-etl.md +213 -0
  122. package/skills/databases/references/mongodb-aggregation.md +447 -0
  123. package/skills/databases/references/mongodb-atlas.md +465 -0
  124. package/skills/databases/references/mongodb-crud.md +408 -0
  125. package/skills/databases/references/mongodb-indexing.md +442 -0
  126. package/skills/databases/references/postgresql-administration.md +594 -0
  127. package/skills/databases/references/postgresql-performance.md +527 -0
  128. package/skills/databases/references/postgresql-psql-cli.md +467 -0
  129. package/skills/databases/references/postgresql-queries.md +475 -0
  130. package/skills/databases/scripts/db_backup.py +502 -0
  131. package/skills/databases/scripts/db_migrate.py +426 -0
  132. package/skills/databases/scripts/db_performance_check.py +457 -0
  133. package/skills/databases/scripts/requirements.txt +20 -0
  134. package/skills/databases/stacks/bigquery.md +231 -0
  135. package/skills/databases/stacks/d1_cloudflare.md +137 -0
  136. package/skills/databases/stacks/mysql.md +216 -0
  137. package/skills/databases/stacks/postgres.md +235 -0
  138. package/skills/databases/stacks/sqlite.md +244 -0
  139. package/skills/databases/transactional.md +176 -0
  140. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/SKILL.md +84 -82
  141. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/defense-in-depth.md +124 -124
  142. package/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  143. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/systematic-debugging.md +102 -102
  144. package/skills/{ck-debugging → debug}/references/verification.md +123 -123
  145. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.sh +63 -63
  146. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.test.md +102 -102
  147. package/skills/devops/.env.example +76 -0
  148. package/skills/devops/SKILL.md +104 -0
  149. package/skills/devops/references/browser-rendering.md +305 -0
  150. package/skills/devops/references/cloudflare-d1-kv.md +123 -0
  151. package/skills/devops/references/cloudflare-platform.md +271 -0
  152. package/skills/devops/references/cloudflare-r2-storage.md +280 -0
  153. package/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  154. package/skills/devops/references/cloudflare-workers-apis.md +309 -0
  155. package/skills/devops/references/cloudflare-workers-basics.md +418 -0
  156. package/skills/devops/references/docker-basics.md +297 -0
  157. package/skills/devops/references/docker-compose.md +292 -0
  158. package/skills/devops/references/gcloud-platform.md +297 -0
  159. package/skills/devops/references/gcloud-services.md +304 -0
  160. package/skills/devops/references/kubernetes-basics.md +99 -0
  161. package/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  162. package/skills/devops/references/kubernetes-helm.md +81 -0
  163. package/skills/devops/references/kubernetes-kubectl.md +74 -0
  164. package/skills/devops/references/kubernetes-security-advanced.md +98 -0
  165. package/skills/devops/references/kubernetes-security.md +95 -0
  166. package/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  167. package/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  168. package/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  169. package/skills/devops/references/kubernetes-workflows.md +78 -0
  170. package/skills/devops/scripts/cloudflare_deploy.py +269 -0
  171. package/skills/devops/scripts/docker_optimize.py +332 -0
  172. package/skills/devops/scripts/requirements.txt +20 -0
  173. package/skills/docs-seeker/.env.example +15 -0
  174. package/skills/docs-seeker/SKILL.md +97 -0
  175. package/skills/docs-seeker/package.json +25 -0
  176. package/skills/docs-seeker/references/advanced.md +79 -0
  177. package/skills/docs-seeker/references/context7-patterns.md +64 -0
  178. package/skills/docs-seeker/references/errors.md +68 -0
  179. package/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  180. package/skills/docs-seeker/scripts/detect-topic.js +172 -0
  181. package/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  182. package/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  183. package/skills/docs-seeker/workflows/library-search.md +86 -0
  184. package/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  185. package/skills/docs-seeker/workflows/topic-search.md +77 -0
  186. package/skills/fix/SKILL.md +101 -0
  187. package/skills/fix/references/complexity-assessment.md +61 -0
  188. package/skills/fix/references/mode-selection.md +46 -0
  189. package/skills/fix/references/parallel-exploration.md +77 -0
  190. package/skills/fix/references/review-cycle.md +77 -0
  191. package/skills/fix/references/skill-activation-matrix.md +65 -0
  192. package/skills/fix/references/workflow-ci.md +28 -0
  193. package/skills/fix/references/workflow-deep.md +91 -0
  194. package/skills/fix/references/workflow-logs.md +36 -0
  195. package/skills/fix/references/workflow-quick.md +59 -0
  196. package/skills/fix/references/workflow-standard.md +86 -0
  197. package/skills/fix/references/workflow-test.md +36 -0
  198. package/skills/fix/references/workflow-types.md +33 -0
  199. package/skills/fix/references/workflow-ui.md +34 -0
  200. package/skills/frontend-design/SKILL.md +75 -0
  201. package/skills/frontend-design/references/analysis-best-practices.md +80 -0
  202. package/skills/frontend-design/references/analysis-prompts.md +141 -0
  203. package/skills/frontend-design/references/analysis-techniques.md +118 -0
  204. package/skills/frontend-design/references/animejs.md +396 -0
  205. package/skills/frontend-design/references/asset-generation.md +161 -0
  206. package/skills/frontend-design/references/design-extraction-overview.md +71 -0
  207. package/skills/frontend-design/references/extraction-best-practices.md +141 -0
  208. package/skills/frontend-design/references/extraction-output-templates.md +162 -0
  209. package/skills/frontend-design/references/extraction-prompts.md +127 -0
  210. package/skills/frontend-design/references/technical-accessibility.md +119 -0
  211. package/skills/frontend-design/references/technical-best-practices.md +97 -0
  212. package/skills/frontend-design/references/technical-optimization.md +44 -0
  213. package/skills/frontend-design/references/technical-overview.md +90 -0
  214. package/skills/frontend-design/references/technical-workflows.md +150 -0
  215. package/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  216. package/skills/frontend-design/references/workflow-describe.md +86 -0
  217. package/skills/frontend-design/references/workflow-quick.md +54 -0
  218. package/skills/frontend-design/references/workflow-screenshot.md +62 -0
  219. package/skills/git/SKILL.md +100 -0
  220. package/skills/git/references/branch-management.md +88 -0
  221. package/skills/git/references/commit-standards.md +46 -0
  222. package/skills/git/references/gh-cli-guide.md +109 -0
  223. package/skills/git/references/safety-protocols.md +69 -0
  224. package/skills/git/references/workflow-commit.md +58 -0
  225. package/skills/git/references/workflow-merge.md +48 -0
  226. package/skills/git/references/workflow-pr.md +58 -0
  227. package/skills/git/references/workflow-push.md +52 -0
  228. package/skills/install.ps1 +1247 -0
  229. package/skills/install.sh +1300 -0
  230. package/skills/mcp-management/README.md +219 -0
  231. package/skills/mcp-management/SKILL.md +209 -0
  232. package/skills/mcp-management/assets/tools.json +3146 -0
  233. package/skills/mcp-management/references/configuration.md +114 -0
  234. package/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  235. package/skills/mcp-management/references/mcp-protocol.md +116 -0
  236. package/skills/mcp-management/scripts/.env.example +10 -0
  237. package/skills/mcp-management/scripts/cli.ts +195 -0
  238. package/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  239. package/skills/mcp-management/scripts/dist/cli.js +160 -0
  240. package/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  241. package/skills/mcp-management/scripts/mcp-client.ts +230 -0
  242. package/skills/mcp-management/scripts/package.json +20 -0
  243. package/skills/mcp-management/scripts/tsconfig.json +15 -0
  244. package/skills/mermaidjs-v11/SKILL.md +115 -0
  245. package/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  246. package/skills/mermaidjs-v11/references/configuration.md +232 -0
  247. package/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  248. package/skills/mermaidjs-v11/references/examples.md +344 -0
  249. package/skills/mermaidjs-v11/references/integration.md +310 -0
  250. package/skills/{ck-planning → planning}/SKILL.md +132 -112
  251. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/codebase-understanding.md +62 -62
  252. package/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  253. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/plan-organization.md +160 -150
  254. package/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  255. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/solution-design.md +63 -63
  256. package/skills/{ck-problem-solving → problem-solving}/SKILL.md +96 -95
  257. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/attribution.md +69 -69
  258. package/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  259. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/inversion-exercise.md +91 -91
  260. package/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  261. package/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  262. package/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  263. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/when-stuck.md +72 -72
  264. package/skills/repomix/SKILL.md +247 -0
  265. package/skills/repomix/references/configuration.md +211 -0
  266. package/skills/repomix/references/usage-patterns.md +232 -0
  267. package/skills/repomix/scripts/README.md +179 -0
  268. package/skills/repomix/scripts/repomix_batch.py +455 -0
  269. package/skills/repomix/scripts/repos.example.json +15 -0
  270. package/skills/repomix/scripts/requirements.txt +15 -0
  271. package/skills/research/SKILL.md +170 -0
  272. package/skills/scout/SKILL.md +79 -0
  273. package/skills/scout/references/external-scouting.md +140 -0
  274. package/skills/scout/references/internal-scouting.md +119 -0
  275. package/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  276. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/README.md +183 -183
  277. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/SKILL.md +94 -92
  278. package/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  279. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  280. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  281. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/core-patterns.md +95 -95
  282. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  283. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  284. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  285. package/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  286. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/scripts/process-thought.js +236 -236
  287. package/skills/ui-styling/LICENSE.txt +202 -0
  288. package/skills/ui-styling/SKILL.md +321 -0
  289. package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  290. package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  291. package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  292. package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  293. package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  294. package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  295. package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  296. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  297. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  298. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  299. package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  300. package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  301. package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  302. package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  303. package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  304. package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  305. package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  306. package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  307. package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  308. package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  309. package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  310. package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  311. package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  312. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  313. package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  314. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  315. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  316. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  317. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  318. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  319. package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  320. package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  321. package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  322. package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  323. package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  324. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  325. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  326. package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  327. package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  328. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  329. package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  330. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  331. package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  332. package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  333. package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  334. package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  335. package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  336. package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  337. package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  338. package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  339. package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  340. package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  341. package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  342. package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  343. package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  344. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  345. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  346. package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  347. package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  348. package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  349. package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  350. package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  351. package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  352. package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  353. package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  354. package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  355. package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  356. package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  357. package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  358. package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  359. package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  360. package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  361. package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  362. package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  363. package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  364. package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  365. package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  366. package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  367. package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  368. package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  369. package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  370. package/skills/ui-styling/references/canvas-design-system.md +320 -0
  371. package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  372. package/skills/ui-styling/references/shadcn-components.md +424 -0
  373. package/skills/ui-styling/references/shadcn-theming.md +373 -0
  374. package/skills/ui-styling/references/tailwind-customization.md +483 -0
  375. package/skills/ui-styling/references/tailwind-responsive.md +382 -0
  376. package/skills/ui-styling/references/tailwind-utilities.md +455 -0
  377. package/skills/ui-styling/scripts/requirements.txt +17 -0
  378. package/skills/ui-styling/scripts/shadcn_add.py +292 -0
  379. package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  380. package/skills/web-testing/SKILL.md +96 -0
  381. package/skills/web-testing/references/accessibility-testing.md +84 -0
  382. package/skills/web-testing/references/api-testing.md +78 -0
  383. package/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  384. package/skills/web-testing/references/component-testing.md +94 -0
  385. package/skills/web-testing/references/contract-testing.md +146 -0
  386. package/skills/web-testing/references/cross-browser-checklist.md +72 -0
  387. package/skills/web-testing/references/database-testing.md +139 -0
  388. package/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  389. package/skills/web-testing/references/functional-testing-checklist.md +88 -0
  390. package/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  391. package/skills/web-testing/references/load-testing-k6.md +93 -0
  392. package/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  393. package/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  394. package/skills/web-testing/references/playwright-component-testing.md +115 -0
  395. package/skills/web-testing/references/pre-release-checklist.md +75 -0
  396. package/skills/web-testing/references/security-checklists.md +81 -0
  397. package/skills/web-testing/references/security-testing-overview.md +92 -0
  398. package/skills/web-testing/references/shadow-dom-testing.md +70 -0
  399. package/skills/web-testing/references/test-data-management.md +131 -0
  400. package/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  401. package/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  402. package/skills/web-testing/references/unit-integration-testing.md +138 -0
  403. package/skills/web-testing/references/visual-regression.md +92 -0
  404. package/skills/web-testing/references/vulnerability-payloads.md +93 -0
  405. package/skills/web-testing/scripts/analyze-test-results.js +280 -0
  406. package/skills/web-testing/scripts/init-playwright.js +233 -0
  407. package/src/commands/add.js +93 -93
  408. package/src/commands/doctor.js +117 -117
  409. package/src/commands/init.js +183 -183
  410. package/src/commands/list.js +91 -91
  411. package/src/commands/update.js +22 -22
  412. package/src/index.js +35 -35
  413. package/src/utils/colors.js +14 -14
  414. package/src/utils/copy.js +122 -122
  415. package/src/utils/paths.js +66 -66
  416. package/src/utils/update-checker.js +126 -126
  417. package/templates/repo/.github/AGENTS.md +103 -55
  418. package/templates/repo/.github/agents/brainstormer.agent.md +71 -71
  419. package/templates/repo/.github/agents/code-reviewer.agent.md +136 -136
  420. package/templates/repo/.github/agents/code-simplifier.agent.md +43 -0
  421. package/templates/repo/.github/agents/debugger.agent.md +128 -128
  422. package/templates/repo/.github/agents/docs-manager.agent.md +121 -121
  423. package/templates/repo/.github/agents/fullstack-developer.agent.md +52 -0
  424. package/templates/repo/.github/agents/git-manager.agent.md +390 -390
  425. package/templates/repo/.github/agents/planner.agent.md +94 -94
  426. package/templates/repo/.github/agents/researcher.agent.md +32 -32
  427. package/templates/repo/.github/agents/scout.agent.md +107 -107
  428. package/templates/repo/.github/agents/tester.agent.md +117 -117
  429. package/templates/repo/.github/agents/ui-ux-designer.agent.md +58 -0
  430. package/templates/repo/.github/collections/ck-core.collection.yml +28 -28
  431. package/templates/repo/.github/collections/ck-development-rules.collection.yml +18 -18
  432. package/templates/repo/.github/collections/ck-documentation.collection.yml +14 -14
  433. package/templates/repo/.github/collections/ck-git-workflow.collection.yml +12 -12
  434. package/templates/repo/.github/collections/ck-orchestration.collection.yml +16 -16
  435. package/templates/repo/.github/instructions/ck-backend.instructions.md +48 -48
  436. package/templates/repo/.github/instructions/ck-development.instructions.md +54 -54
  437. package/templates/repo/.github/instructions/ck-frontend.instructions.md +44 -44
  438. package/templates/repo/.github/instructions/ck-research.instructions.md +167 -167
  439. package/templates/repo/.github/instructions/ck-testing.instructions.md +36 -36
  440. package/templates/repo/.github/prompts/ck-ask.prompt.md +66 -57
  441. package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +147 -136
  442. package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +86 -105
  443. package/templates/repo/.github/prompts/ck-cook.prompt.md +95 -97
  444. package/templates/repo/.github/prompts/ck-debug.prompt.md +114 -14
  445. package/templates/repo/.github/prompts/ck-docs.prompt.md +101 -51
  446. package/templates/repo/.github/prompts/ck-fix.prompt.md +52 -44
  447. package/templates/repo/.github/prompts/ck-git.prompt.md +104 -79
  448. package/{prompts/ck-ck-help.prompt.md → templates/repo/.github/prompts/ck-help.prompt.md} +140 -112
  449. package/templates/repo/.github/prompts/ck-journal.prompt.md +17 -0
  450. package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +85 -0
  451. package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +112 -0
  452. package/templates/repo/.github/prompts/ck-plan.prompt.md +38 -80
  453. package/templates/repo/.github/prompts/ck-preview.prompt.md +93 -0
  454. package/{prompts/ck-review-codebase.prompt.md → templates/repo/.github/prompts/ck-review.prompt.md} +59 -44
  455. package/templates/repo/.github/prompts/ck-scout.prompt.md +84 -25
  456. package/templates/repo/.github/prompts/ck-simplify.prompt.md +46 -0
  457. package/templates/repo/.github/prompts/ck-spec-analyze.prompt.md +203 -0
  458. package/templates/repo/.github/prompts/ck-spec-checklist.prompt.md +310 -0
  459. package/templates/repo/.github/prompts/ck-spec-clarify.prompt.md +197 -0
  460. package/templates/repo/.github/prompts/ck-spec-constitution.prompt.md +97 -0
  461. package/templates/repo/.github/prompts/ck-spec-implement.prompt.md +160 -0
  462. package/templates/repo/.github/prompts/ck-spec-plan.prompt.md +108 -0
  463. package/templates/repo/.github/prompts/ck-spec-specify.prompt.md +270 -0
  464. package/templates/repo/.github/prompts/ck-spec-tasks.prompt.md +193 -0
  465. package/templates/repo/.github/prompts/ck-spec-taskstoissues.prompt.md +48 -0
  466. package/templates/repo/.github/prompts/ck-test.prompt.md +19 -10
  467. package/templates/repo/.github/prompts/ck-watzup.prompt.md +19 -0
  468. package/templates/repo/.github/skills/INSTALLATION.md +311 -0
  469. package/templates/repo/.github/skills/README.md +134 -0
  470. package/templates/repo/.github/skills/THIRD_PARTY_NOTICES.md +405 -0
  471. package/templates/repo/.github/skills/agent-browser/SKILL.md +292 -0
  472. package/templates/repo/.github/skills/agent-browser/references/.gitkeep +0 -0
  473. package/templates/repo/.github/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  474. package/templates/repo/.github/skills/agent_skills_spec.md +55 -0
  475. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/SKILL.md +96 -96
  476. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  477. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-architecture.md +454 -454
  478. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  479. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  480. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-debugging.md +904 -904
  481. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-devops.md +494 -494
  482. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-mindset.md +387 -387
  483. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  484. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-security.md +340 -290
  485. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-technologies.md +300 -290
  486. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-testing.md +484 -561
  487. package/templates/repo/.github/skills/brainstorm/SKILL.md +76 -0
  488. package/{skills/ck-code-review → templates/repo/.github/skills/code-review}/SKILL.md +143 -143
  489. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/code-review-reception.md +208 -208
  490. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/requesting-code-review.md +104 -104
  491. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/verification-before-completion.md +138 -138
  492. package/templates/repo/.github/skills/common/README.md +120 -0
  493. package/templates/repo/.github/skills/common/api_key_helper.py +411 -0
  494. package/templates/repo/.github/skills/common/api_key_rotator.py +248 -0
  495. package/templates/repo/.github/skills/context-engineering/SKILL.md +107 -0
  496. package/templates/repo/.github/skills/context-engineering/references/context-compression.md +84 -0
  497. package/templates/repo/.github/skills/context-engineering/references/context-degradation.md +93 -0
  498. package/templates/repo/.github/skills/context-engineering/references/context-fundamentals.md +75 -0
  499. package/templates/repo/.github/skills/context-engineering/references/context-optimization.md +82 -0
  500. package/templates/repo/.github/skills/context-engineering/references/evaluation.md +89 -0
  501. package/templates/repo/.github/skills/context-engineering/references/memory-systems.md +88 -0
  502. package/templates/repo/.github/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  503. package/templates/repo/.github/skills/context-engineering/references/project-development.md +97 -0
  504. package/templates/repo/.github/skills/context-engineering/references/runtime-awareness.md +202 -0
  505. package/templates/repo/.github/skills/context-engineering/references/tool-design.md +86 -0
  506. package/templates/repo/.github/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  507. package/templates/repo/.github/skills/context-engineering/scripts/context_analyzer.py +317 -0
  508. package/templates/repo/.github/skills/cook/README.md +86 -0
  509. package/templates/repo/.github/skills/cook/SKILL.md +94 -0
  510. package/templates/repo/.github/skills/cook/references/intent-detection.md +101 -0
  511. package/templates/repo/.github/skills/cook/references/review-cycle.md +75 -0
  512. package/templates/repo/.github/skills/cook/references/subagent-patterns.md +75 -0
  513. package/templates/repo/.github/skills/cook/references/workflow-steps.md +140 -0
  514. package/templates/repo/.github/skills/databases/SKILL.md +112 -0
  515. package/templates/repo/.github/skills/databases/analytics.md +198 -0
  516. package/templates/repo/.github/skills/databases/db-design.md +188 -0
  517. package/templates/repo/.github/skills/databases/incremental-etl.md +213 -0
  518. package/templates/repo/.github/skills/databases/references/mongodb-aggregation.md +447 -0
  519. package/templates/repo/.github/skills/databases/references/mongodb-atlas.md +465 -0
  520. package/templates/repo/.github/skills/databases/references/mongodb-crud.md +408 -0
  521. package/templates/repo/.github/skills/databases/references/mongodb-indexing.md +442 -0
  522. package/templates/repo/.github/skills/databases/references/postgresql-administration.md +594 -0
  523. package/templates/repo/.github/skills/databases/references/postgresql-performance.md +527 -0
  524. package/templates/repo/.github/skills/databases/references/postgresql-psql-cli.md +467 -0
  525. package/templates/repo/.github/skills/databases/references/postgresql-queries.md +475 -0
  526. package/templates/repo/.github/skills/databases/scripts/db_backup.py +502 -0
  527. package/templates/repo/.github/skills/databases/scripts/db_migrate.py +426 -0
  528. package/templates/repo/.github/skills/databases/scripts/db_performance_check.py +457 -0
  529. package/templates/repo/.github/skills/databases/scripts/requirements.txt +20 -0
  530. package/templates/repo/.github/skills/databases/stacks/bigquery.md +231 -0
  531. package/templates/repo/.github/skills/databases/stacks/d1_cloudflare.md +137 -0
  532. package/templates/repo/.github/skills/databases/stacks/mysql.md +216 -0
  533. package/templates/repo/.github/skills/databases/stacks/postgres.md +235 -0
  534. package/templates/repo/.github/skills/databases/stacks/sqlite.md +244 -0
  535. package/templates/repo/.github/skills/databases/transactional.md +176 -0
  536. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/SKILL.md +84 -82
  537. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/defense-in-depth.md +124 -124
  538. package/templates/repo/.github/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  539. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/systematic-debugging.md +102 -102
  540. package/templates/repo/.github/skills/{ck-debugging → debug}/references/verification.md +123 -123
  541. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.sh +63 -63
  542. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.test.md +102 -102
  543. package/templates/repo/.github/skills/devops/.env.example +76 -0
  544. package/templates/repo/.github/skills/devops/SKILL.md +104 -0
  545. package/templates/repo/.github/skills/devops/references/browser-rendering.md +305 -0
  546. package/templates/repo/.github/skills/devops/references/cloudflare-d1-kv.md +123 -0
  547. package/templates/repo/.github/skills/devops/references/cloudflare-platform.md +271 -0
  548. package/templates/repo/.github/skills/devops/references/cloudflare-r2-storage.md +280 -0
  549. package/templates/repo/.github/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  550. package/templates/repo/.github/skills/devops/references/cloudflare-workers-apis.md +309 -0
  551. package/templates/repo/.github/skills/devops/references/cloudflare-workers-basics.md +418 -0
  552. package/templates/repo/.github/skills/devops/references/docker-basics.md +297 -0
  553. package/templates/repo/.github/skills/devops/references/docker-compose.md +292 -0
  554. package/templates/repo/.github/skills/devops/references/gcloud-platform.md +297 -0
  555. package/templates/repo/.github/skills/devops/references/gcloud-services.md +304 -0
  556. package/templates/repo/.github/skills/devops/references/kubernetes-basics.md +99 -0
  557. package/templates/repo/.github/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  558. package/templates/repo/.github/skills/devops/references/kubernetes-helm.md +81 -0
  559. package/templates/repo/.github/skills/devops/references/kubernetes-kubectl.md +74 -0
  560. package/templates/repo/.github/skills/devops/references/kubernetes-security-advanced.md +98 -0
  561. package/templates/repo/.github/skills/devops/references/kubernetes-security.md +95 -0
  562. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  563. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  564. package/templates/repo/.github/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  565. package/templates/repo/.github/skills/devops/references/kubernetes-workflows.md +78 -0
  566. package/templates/repo/.github/skills/devops/scripts/cloudflare_deploy.py +269 -0
  567. package/templates/repo/.github/skills/devops/scripts/docker_optimize.py +332 -0
  568. package/templates/repo/.github/skills/devops/scripts/requirements.txt +20 -0
  569. package/templates/repo/.github/skills/docs-seeker/.env.example +15 -0
  570. package/templates/repo/.github/skills/docs-seeker/SKILL.md +97 -0
  571. package/templates/repo/.github/skills/docs-seeker/package.json +25 -0
  572. package/templates/repo/.github/skills/docs-seeker/references/advanced.md +79 -0
  573. package/templates/repo/.github/skills/docs-seeker/references/context7-patterns.md +64 -0
  574. package/templates/repo/.github/skills/docs-seeker/references/errors.md +68 -0
  575. package/templates/repo/.github/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  576. package/templates/repo/.github/skills/docs-seeker/scripts/detect-topic.js +172 -0
  577. package/templates/repo/.github/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  578. package/templates/repo/.github/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  579. package/templates/repo/.github/skills/docs-seeker/workflows/library-search.md +86 -0
  580. package/templates/repo/.github/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  581. package/templates/repo/.github/skills/docs-seeker/workflows/topic-search.md +77 -0
  582. package/templates/repo/.github/skills/fix/SKILL.md +101 -0
  583. package/templates/repo/.github/skills/fix/references/complexity-assessment.md +61 -0
  584. package/templates/repo/.github/skills/fix/references/mode-selection.md +46 -0
  585. package/templates/repo/.github/skills/fix/references/parallel-exploration.md +77 -0
  586. package/templates/repo/.github/skills/fix/references/review-cycle.md +77 -0
  587. package/templates/repo/.github/skills/fix/references/skill-activation-matrix.md +65 -0
  588. package/templates/repo/.github/skills/fix/references/workflow-ci.md +28 -0
  589. package/templates/repo/.github/skills/fix/references/workflow-deep.md +91 -0
  590. package/templates/repo/.github/skills/fix/references/workflow-logs.md +36 -0
  591. package/templates/repo/.github/skills/fix/references/workflow-quick.md +59 -0
  592. package/templates/repo/.github/skills/fix/references/workflow-standard.md +86 -0
  593. package/templates/repo/.github/skills/fix/references/workflow-test.md +36 -0
  594. package/templates/repo/.github/skills/fix/references/workflow-types.md +33 -0
  595. package/templates/repo/.github/skills/fix/references/workflow-ui.md +34 -0
  596. package/templates/repo/.github/skills/frontend-design/SKILL.md +75 -0
  597. package/templates/repo/.github/skills/frontend-design/references/analysis-best-practices.md +80 -0
  598. package/templates/repo/.github/skills/frontend-design/references/analysis-prompts.md +141 -0
  599. package/templates/repo/.github/skills/frontend-design/references/analysis-techniques.md +118 -0
  600. package/templates/repo/.github/skills/frontend-design/references/animejs.md +396 -0
  601. package/templates/repo/.github/skills/frontend-design/references/asset-generation.md +161 -0
  602. package/templates/repo/.github/skills/frontend-design/references/design-extraction-overview.md +71 -0
  603. package/templates/repo/.github/skills/frontend-design/references/extraction-best-practices.md +141 -0
  604. package/templates/repo/.github/skills/frontend-design/references/extraction-output-templates.md +162 -0
  605. package/templates/repo/.github/skills/frontend-design/references/extraction-prompts.md +127 -0
  606. package/templates/repo/.github/skills/frontend-design/references/technical-accessibility.md +119 -0
  607. package/templates/repo/.github/skills/frontend-design/references/technical-best-practices.md +97 -0
  608. package/templates/repo/.github/skills/frontend-design/references/technical-optimization.md +44 -0
  609. package/templates/repo/.github/skills/frontend-design/references/technical-overview.md +90 -0
  610. package/templates/repo/.github/skills/frontend-design/references/technical-workflows.md +150 -0
  611. package/templates/repo/.github/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  612. package/templates/repo/.github/skills/frontend-design/references/workflow-describe.md +86 -0
  613. package/templates/repo/.github/skills/frontend-design/references/workflow-quick.md +54 -0
  614. package/templates/repo/.github/skills/frontend-design/references/workflow-screenshot.md +62 -0
  615. package/templates/repo/.github/skills/git/SKILL.md +100 -0
  616. package/templates/repo/.github/skills/git/references/branch-management.md +88 -0
  617. package/templates/repo/.github/skills/git/references/commit-standards.md +46 -0
  618. package/templates/repo/.github/skills/git/references/gh-cli-guide.md +109 -0
  619. package/templates/repo/.github/skills/git/references/safety-protocols.md +69 -0
  620. package/templates/repo/.github/skills/git/references/workflow-commit.md +58 -0
  621. package/templates/repo/.github/skills/git/references/workflow-merge.md +48 -0
  622. package/templates/repo/.github/skills/git/references/workflow-pr.md +58 -0
  623. package/templates/repo/.github/skills/git/references/workflow-push.md +52 -0
  624. package/templates/repo/.github/skills/install.ps1 +1247 -0
  625. package/templates/repo/.github/skills/install.sh +1300 -0
  626. package/templates/repo/.github/skills/mcp-management/README.md +219 -0
  627. package/templates/repo/.github/skills/mcp-management/SKILL.md +209 -0
  628. package/templates/repo/.github/skills/mcp-management/assets/tools.json +3146 -0
  629. package/templates/repo/.github/skills/mcp-management/references/configuration.md +114 -0
  630. package/templates/repo/.github/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  631. package/templates/repo/.github/skills/mcp-management/references/mcp-protocol.md +116 -0
  632. package/templates/repo/.github/skills/mcp-management/scripts/.env.example +10 -0
  633. package/templates/repo/.github/skills/mcp-management/scripts/cli.ts +195 -0
  634. package/templates/repo/.github/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  635. package/templates/repo/.github/skills/mcp-management/scripts/dist/cli.js +160 -0
  636. package/templates/repo/.github/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  637. package/templates/repo/.github/skills/mcp-management/scripts/mcp-client.ts +230 -0
  638. package/templates/repo/.github/skills/mcp-management/scripts/package.json +20 -0
  639. package/templates/repo/.github/skills/mcp-management/scripts/tsconfig.json +15 -0
  640. package/templates/repo/.github/skills/mermaidjs-v11/SKILL.md +115 -0
  641. package/templates/repo/.github/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  642. package/templates/repo/.github/skills/mermaidjs-v11/references/configuration.md +232 -0
  643. package/templates/repo/.github/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  644. package/templates/repo/.github/skills/mermaidjs-v11/references/examples.md +344 -0
  645. package/templates/repo/.github/skills/mermaidjs-v11/references/integration.md +310 -0
  646. package/templates/repo/.github/skills/{ck-planning → planning}/SKILL.md +132 -112
  647. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/codebase-understanding.md +62 -62
  648. package/templates/repo/.github/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  649. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/plan-organization.md +160 -150
  650. package/templates/repo/.github/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  651. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/solution-design.md +63 -63
  652. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/SKILL.md +96 -95
  653. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/attribution.md +69 -69
  654. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  655. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/inversion-exercise.md +91 -91
  656. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  657. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  658. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  659. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/when-stuck.md +72 -72
  660. package/templates/repo/.github/skills/repomix/SKILL.md +247 -0
  661. package/templates/repo/.github/skills/repomix/references/configuration.md +211 -0
  662. package/templates/repo/.github/skills/repomix/references/usage-patterns.md +232 -0
  663. package/templates/repo/.github/skills/repomix/scripts/README.md +179 -0
  664. package/templates/repo/.github/skills/repomix/scripts/repomix_batch.py +455 -0
  665. package/templates/repo/.github/skills/repomix/scripts/repos.example.json +15 -0
  666. package/templates/repo/.github/skills/repomix/scripts/requirements.txt +15 -0
  667. package/templates/repo/.github/skills/research/SKILL.md +170 -0
  668. package/templates/repo/.github/skills/scout/SKILL.md +79 -0
  669. package/templates/repo/.github/skills/scout/references/external-scouting.md +140 -0
  670. package/templates/repo/.github/skills/scout/references/internal-scouting.md +119 -0
  671. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  672. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/README.md +183 -183
  673. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/SKILL.md +94 -92
  674. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  675. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  676. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  677. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/core-patterns.md +95 -95
  678. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  679. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  680. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  681. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  682. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/scripts/process-thought.js +236 -236
  683. package/templates/repo/.github/skills/ui-styling/LICENSE.txt +202 -0
  684. package/templates/repo/.github/skills/ui-styling/SKILL.md +321 -0
  685. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  686. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  687. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  688. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  689. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  690. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  691. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  692. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  693. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  694. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  695. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  696. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  697. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  698. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  699. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  700. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  701. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  702. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  703. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  704. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  705. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  706. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  707. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  708. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  709. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  710. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  711. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  712. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  713. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  714. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  715. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  716. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  717. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  718. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  719. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  720. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  721. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  722. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  723. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  724. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  725. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  726. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  727. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  728. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  729. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  730. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  731. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  732. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  733. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  734. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  735. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  736. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  737. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  738. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  739. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  740. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  741. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  742. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  743. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  744. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  745. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  746. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  747. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  748. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  749. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  750. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  751. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  752. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  753. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  754. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  755. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  756. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  757. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  758. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  759. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  760. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  761. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  762. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  763. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  764. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  765. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  766. package/templates/repo/.github/skills/ui-styling/references/canvas-design-system.md +320 -0
  767. package/templates/repo/.github/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  768. package/templates/repo/.github/skills/ui-styling/references/shadcn-components.md +424 -0
  769. package/templates/repo/.github/skills/ui-styling/references/shadcn-theming.md +373 -0
  770. package/templates/repo/.github/skills/ui-styling/references/tailwind-customization.md +483 -0
  771. package/templates/repo/.github/skills/ui-styling/references/tailwind-responsive.md +382 -0
  772. package/templates/repo/.github/skills/ui-styling/references/tailwind-utilities.md +455 -0
  773. package/templates/repo/.github/skills/ui-styling/scripts/requirements.txt +17 -0
  774. package/templates/repo/.github/skills/ui-styling/scripts/shadcn_add.py +292 -0
  775. package/templates/repo/.github/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  776. package/templates/repo/.github/skills/web-testing/SKILL.md +96 -0
  777. package/templates/repo/.github/skills/web-testing/references/accessibility-testing.md +84 -0
  778. package/templates/repo/.github/skills/web-testing/references/api-testing.md +78 -0
  779. package/templates/repo/.github/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  780. package/templates/repo/.github/skills/web-testing/references/component-testing.md +94 -0
  781. package/templates/repo/.github/skills/web-testing/references/contract-testing.md +146 -0
  782. package/templates/repo/.github/skills/web-testing/references/cross-browser-checklist.md +72 -0
  783. package/templates/repo/.github/skills/web-testing/references/database-testing.md +139 -0
  784. package/templates/repo/.github/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  785. package/templates/repo/.github/skills/web-testing/references/functional-testing-checklist.md +88 -0
  786. package/templates/repo/.github/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  787. package/templates/repo/.github/skills/web-testing/references/load-testing-k6.md +93 -0
  788. package/templates/repo/.github/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  789. package/templates/repo/.github/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  790. package/templates/repo/.github/skills/web-testing/references/playwright-component-testing.md +115 -0
  791. package/templates/repo/.github/skills/web-testing/references/pre-release-checklist.md +75 -0
  792. package/templates/repo/.github/skills/web-testing/references/security-checklists.md +81 -0
  793. package/templates/repo/.github/skills/web-testing/references/security-testing-overview.md +92 -0
  794. package/templates/repo/.github/skills/web-testing/references/shadow-dom-testing.md +70 -0
  795. package/templates/repo/.github/skills/web-testing/references/test-data-management.md +131 -0
  796. package/templates/repo/.github/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  797. package/templates/repo/.github/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  798. package/templates/repo/.github/skills/web-testing/references/unit-integration-testing.md +138 -0
  799. package/templates/repo/.github/skills/web-testing/references/visual-regression.md +92 -0
  800. package/templates/repo/.github/skills/web-testing/references/vulnerability-payloads.md +93 -0
  801. package/templates/repo/.github/skills/web-testing/scripts/analyze-test-results.js +280 -0
  802. package/templates/repo/.github/skills/web-testing/scripts/init-playwright.js +233 -0
  803. package/templates/repo/.github/spec-kit/memory/constitution.md +50 -0
  804. package/templates/repo/.github/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
  805. package/templates/repo/.github/spec-kit/scripts/bash/common.sh +156 -0
  806. package/templates/repo/.github/spec-kit/scripts/bash/create-new-feature.sh +297 -0
  807. package/templates/repo/.github/spec-kit/scripts/bash/setup-plan.sh +61 -0
  808. package/templates/repo/.github/spec-kit/scripts/bash/update-agent-context.sh +799 -0
  809. package/templates/repo/.github/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
  810. package/templates/repo/.github/spec-kit/scripts/powershell/common.ps1 +137 -0
  811. package/templates/repo/.github/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
  812. package/templates/repo/.github/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
  813. package/templates/repo/.github/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
  814. package/templates/repo/.github/spec-kit/templates/agent-file-template.md +28 -0
  815. package/templates/repo/.github/spec-kit/templates/checklist-template.md +40 -0
  816. package/templates/repo/.github/spec-kit/templates/commands/analyze.md +187 -0
  817. package/templates/repo/.github/spec-kit/templates/commands/checklist.md +297 -0
  818. package/templates/repo/.github/spec-kit/templates/commands/clarify.md +184 -0
  819. package/templates/repo/.github/spec-kit/templates/commands/constitution.md +82 -0
  820. package/templates/repo/.github/spec-kit/templates/commands/implement.md +138 -0
  821. package/templates/repo/.github/spec-kit/templates/commands/plan.md +95 -0
  822. package/templates/repo/.github/spec-kit/templates/commands/specify.md +261 -0
  823. package/templates/repo/.github/spec-kit/templates/commands/tasks.md +140 -0
  824. package/templates/repo/.github/spec-kit/templates/commands/taskstoissues.md +33 -0
  825. package/templates/repo/.github/spec-kit/templates/plan-template.md +104 -0
  826. package/templates/repo/.github/spec-kit/templates/spec-template.md +115 -0
  827. package/templates/repo/.github/spec-kit/templates/tasks-phase-template.md +42 -0
  828. package/templates/repo/.github/spec-kit/templates/tasks-template.md +268 -0
  829. package/templates/repo/.github/spec-kit/templates/vscode-settings.json +14 -0
  830. package/templates/repo/.vscode/settings.json +70 -70
  831. package/.vscode/settings.json +0 -70
  832. package/AGENTS.md +0 -103
  833. package/FAQ.md +0 -101
  834. package/INIT.md +0 -154
  835. package/QUICK-START.md +0 -37
  836. package/changelogs/1.0.8.md +0 -77
  837. package/changelogs/1.0.9.md +0 -173
  838. package/plans/reports/docs-manager-260120-0854-documentation-update.md +0 -323
  839. package/prompts/ck-code.prompt.md +0 -178
  840. package/repomix-output.xml +0 -40725
  841. package/rules/README.agents.md +0 -55
  842. package/rules/README.collections.md +0 -78
  843. package/rules/README.copilot-instructions.md +0 -66
  844. package/rules/README.instructions.md +0 -73
  845. package/rules/README.md +0 -39
  846. package/rules/README.prompts.md +0 -76
  847. package/rules/README.skills.md +0 -71
  848. package/skills/ck-frontend-development/SKILL.md +0 -399
  849. package/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  850. package/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  851. package/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  852. package/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  853. package/skills/ck-frontend-development/resources/file-organization.md +0 -502
  854. package/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  855. package/skills/ck-frontend-development/resources/performance.md +0 -406
  856. package/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  857. package/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  858. package/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  859. package/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  860. package/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  861. package/templates/repo/.github/.cokit-version +0 -4
  862. package/templates/repo/.github/copilot-instructions.md +0 -45
  863. package/templates/repo/.github/prompts/ck-code.prompt.md +0 -178
  864. package/templates/repo/.github/skills/ck-frontend-development/SKILL.md +0 -399
  865. package/templates/repo/.github/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  866. package/templates/repo/.github/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  867. package/templates/repo/.github/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  868. package/templates/repo/.github/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  869. package/templates/repo/.github/skills/ck-frontend-development/resources/file-organization.md +0 -502
  870. package/templates/repo/.github/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  871. package/templates/repo/.github/skills/ck-frontend-development/resources/performance.md +0 -406
  872. package/templates/repo/.github/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  873. package/templates/repo/.github/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  874. package/templates/repo/.github/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  875. package/templates/repo/.github/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  876. package/templates/repo/.github/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  877. /package/skills/{ck-code-review → code-review}/references/requesting-code-review.md +0 -0
  878. /package/skills/{ck-code-review → code-review}/references/verification-before-completion.md +0 -0
@@ -1,495 +1,697 @@
1
- # Backend API Design
2
-
3
- Comprehensive guide to designing RESTful, GraphQL, and gRPC APIs with best practices (2025).
4
-
5
- ## REST API Design
6
-
7
- ### Resource-Based URLs
8
-
9
- **Good:**
10
- ```
11
- GET /api/v1/users # List users
12
- GET /api/v1/users/:id # Get specific user
13
- POST /api/v1/users # Create user
14
- PUT /api/v1/users/:id # Update user (full)
15
- PATCH /api/v1/users/:id # Update user (partial)
16
- DELETE /api/v1/users/:id # Delete user
17
-
18
- GET /api/v1/users/:id/posts # Get user's posts
19
- POST /api/v1/users/:id/posts # Create post for user
20
- ```
21
-
22
- **Bad (Avoid):**
23
- ```
24
- GET /api/v1/getUser?id=123 # RPC-style, not RESTful
25
- POST /api/v1/createUser # Verb in URL
26
- GET /api/v1/user-posts # Unclear relationship
27
- ```
28
-
29
- ### HTTP Status Codes (Meaningful Responses)
30
-
31
- **Success:**
32
- - `200 OK` - Successful GET, PUT, PATCH
33
- - `201 Created` - Successful POST (resource created)
34
- - `204 No Content` - Successful DELETE
35
-
36
- **Client Errors:**
37
- - `400 Bad Request` - Invalid input/validation error
38
- - `401 Unauthorized` - Missing or invalid authentication
39
- - `403 Forbidden` - Authenticated but not authorized
40
- - `404 Not Found` - Resource doesn't exist
41
- - `409 Conflict` - Resource conflict (duplicate email)
42
- - `422 Unprocessable Entity` - Validation error (detailed)
43
- - `429 Too Many Requests` - Rate limit exceeded
44
-
45
- **Server Errors:**
46
- - `500 Internal Server Error` - Generic server error
47
- - `502 Bad Gateway` - Upstream service error
48
- - `503 Service Unavailable` - Temporary downtime
49
- - `504 Gateway Timeout` - Upstream service timeout
50
-
51
- ### Request/Response Format
52
-
53
- **Request:**
54
- ```typescript
55
- POST /api/v1/users
56
- Content-Type: application/json
57
-
58
- {
59
- "email": "user@example.com",
60
- "name": "John Doe",
61
- "age": 30
62
- }
63
- ```
64
-
65
- **Success Response:**
66
- ```typescript
67
- HTTP/1.1 201 Created
68
- Content-Type: application/json
69
- Location: /api/v1/users/123
70
-
71
- {
72
- "id": "123",
73
- "email": "user@example.com",
74
- "name": "John Doe",
75
- "age": 30,
76
- "createdAt": "2025-01-09T12:00:00Z",
77
- "updatedAt": "2025-01-09T12:00:00Z"
78
- }
79
- ```
80
-
81
- **Error Response:**
82
- ```typescript
83
- HTTP/1.1 400 Bad Request
84
- Content-Type: application/json
85
-
86
- {
87
- "error": {
88
- "code": "VALIDATION_ERROR",
89
- "message": "Invalid input data",
90
- "details": [
91
- {
92
- "field": "email",
93
- "message": "Invalid email format",
94
- "value": "invalid-email"
95
- },
96
- {
97
- "field": "age",
98
- "message": "Age must be between 18 and 120",
99
- "value": 15
100
- }
101
- ],
102
- "timestamp": "2025-01-09T12:00:00Z",
103
- "path": "/api/v1/users"
104
- }
105
- }
106
- ```
107
-
108
- ### Pagination
109
-
110
- ```typescript
111
- // Request
112
- GET /api/v1/users?page=2&limit=50
113
-
114
- // Response
115
- {
116
- "data": [...],
117
- "pagination": {
118
- "page": 2,
119
- "limit": 50,
120
- "total": 1234,
121
- "totalPages": 25,
122
- "hasNext": true,
123
- "hasPrev": true
124
- },
125
- "links": {
126
- "first": "/api/v1/users?page=1&limit=50",
127
- "prev": "/api/v1/users?page=1&limit=50",
128
- "next": "/api/v1/users?page=3&limit=50",
129
- "last": "/api/v1/users?page=25&limit=50"
130
- }
131
- }
132
- ```
133
-
134
- ### Filtering and Sorting
135
-
136
- ```
137
- GET /api/v1/users?status=active&role=admin&sort=-createdAt,name&limit=20
138
-
139
- # Filters: status=active AND role=admin
140
- # Sort: createdAt DESC, name ASC
141
- # Limit: 20 results
142
- ```
143
-
144
- ### API Versioning Strategies
145
-
146
- **URL Versioning (Most Common):**
147
- ```
148
- /api/v1/users
149
- /api/v2/users
150
- ```
151
-
152
- **Header Versioning:**
153
- ```
154
- GET /api/users
155
- Accept: application/vnd.myapi.v2+json
156
- ```
157
-
158
- **Query Parameter:**
159
- ```
160
- /api/users?version=2
161
- ```
162
-
163
- **Recommendation:** URL versioning for simplicity and discoverability
164
-
165
- ## GraphQL API Design
166
-
167
- ### Schema Definition
168
-
169
- ```graphql
170
- type User {
171
- id: ID!
172
- email: String!
173
- name: String!
174
- posts: [Post!]!
175
- createdAt: DateTime!
176
- }
177
-
178
- type Post {
179
- id: ID!
180
- title: String!
181
- content: String!
182
- author: User!
183
- published: Boolean!
184
- createdAt: DateTime!
185
- }
186
-
187
- type Query {
188
- user(id: ID!): User
189
- users(limit: Int = 50, offset: Int = 0): [User!]!
190
- post(id: ID!): Post
191
- posts(authorId: ID, published: Boolean): [Post!]!
192
- }
193
-
194
- type Mutation {
195
- createUser(input: CreateUserInput!): User!
196
- updateUser(id: ID!, input: UpdateUserInput!): User!
197
- deleteUser(id: ID!): Boolean!
198
-
199
- createPost(input: CreatePostInput!): Post!
200
- publishPost(id: ID!): Post!
201
- }
202
-
203
- input CreateUserInput {
204
- email: String!
205
- name: String!
206
- password: String!
207
- }
208
-
209
- input UpdateUserInput {
210
- email: String
211
- name: String
212
- }
213
- ```
214
-
215
- ### Queries
216
-
217
- ```graphql
218
- # Flexible data fetching - client specifies exactly what they need
219
- query {
220
- user(id: "123") {
221
- id
222
- name
223
- email
224
- posts {
225
- id
226
- title
227
- published
228
- }
229
- }
230
- }
231
-
232
- # With variables
233
- query GetUser($userId: ID!) {
234
- user(id: $userId) {
235
- id
236
- name
237
- posts(published: true) {
238
- title
239
- }
240
- }
241
- }
242
- ```
243
-
244
- ### Mutations
245
-
246
- ```graphql
247
- mutation CreateUser($input: CreateUserInput!) {
248
- createUser(input: $input) {
249
- id
250
- email
251
- name
252
- createdAt
253
- }
254
- }
255
-
256
- # Variables
257
- {
258
- "input": {
259
- "email": "user@example.com",
260
- "name": "John Doe",
261
- "password": "SecurePass123!"
262
- }
263
- }
264
- ```
265
-
266
- ### Resolvers (NestJS Example)
267
-
268
- ```typescript
269
- @Resolver(() => User)
270
- export class UserResolver {
271
- constructor(
272
- private userService: UserService,
273
- private postService: PostService,
274
- ) {}
275
-
276
- @Query(() => User, { nullable: true })
277
- async user(@Args('id') id: string) {
278
- return this.userService.findById(id);
279
- }
280
-
281
- @Query(() => [User])
282
- async users(
283
- @Args('limit', { defaultValue: 50 }) limit: number,
284
- @Args('offset', { defaultValue: 0 }) offset: number,
285
- ) {
286
- return this.userService.findAll({ limit, offset });
287
- }
288
-
289
- @Mutation(() => User)
290
- async createUser(@Args('input') input: CreateUserInput) {
291
- return this.userService.create(input);
292
- }
293
-
294
- // Field resolver - lazy load posts
295
- @ResolveField(() => [Post])
296
- async posts(@Parent() user: User) {
297
- return this.postService.findByAuthorId(user.id);
298
- }
299
- }
300
- ```
301
-
302
- ### GraphQL Best Practices
303
-
304
- 1. **Avoid N+1 Problem** - Use DataLoader
305
- ```typescript
306
- import DataLoader from 'dataloader';
307
-
308
- const postLoader = new DataLoader(async (authorIds: string[]) => {
309
- const posts = await db.posts.findAll({ where: { authorId: authorIds } });
310
- return authorIds.map(id => posts.filter(p => p.authorId === id));
311
- });
312
-
313
- // In resolver
314
- @ResolveField(() => [Post])
315
- async posts(@Parent() user: User) {
316
- return this.postLoader.load(user.id);
317
- }
318
- ```
319
-
320
- 2. **Pagination** - Relay-style cursor pagination
321
- 3. **Error Handling** - Return errors in response
322
- 4. **Depth Limiting** - Prevent deeply nested queries
323
- 5. **Query Complexity Analysis** - Limit expensive queries
324
-
325
- ## gRPC API Design
326
-
327
- ### Protocol Buffers Schema
328
-
329
- ```protobuf
330
- syntax = "proto3";
331
-
332
- package user;
333
-
334
- service UserService {
335
- rpc GetUser (GetUserRequest) returns (User);
336
- rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
337
- rpc CreateUser (CreateUserRequest) returns (User);
338
- rpc UpdateUser (UpdateUserRequest) returns (User);
339
- rpc DeleteUser (DeleteUserRequest) returns (DeleteUserResponse);
340
-
341
- // Streaming
342
- rpc StreamUsers (StreamUsersRequest) returns (stream User);
343
- }
344
-
345
- message User {
346
- string id = 1;
347
- string email = 2;
348
- string name = 3;
349
- int64 created_at = 4;
350
- }
351
-
352
- message GetUserRequest {
353
- string id = 1;
354
- }
355
-
356
- message ListUsersRequest {
357
- int32 limit = 1;
358
- int32 offset = 2;
359
- }
360
-
361
- message ListUsersResponse {
362
- repeated User users = 1;
363
- int32 total = 2;
364
- }
365
-
366
- message CreateUserRequest {
367
- string email = 1;
368
- string name = 2;
369
- string password = 3;
370
- }
371
- ```
372
-
373
- ### Implementation (Node.js)
374
-
375
- ```typescript
376
- import * as grpc from '@grpc/grpc-js';
377
- import * as protoLoader from '@grpc/proto-loader';
378
-
379
- const packageDefinition = protoLoader.loadSync('user.proto');
380
- const userProto = grpc.loadPackageDefinition(packageDefinition).user;
381
-
382
- // Server implementation
383
- const server = new grpc.Server();
384
-
385
- server.addService(userProto.UserService.service, {
386
- async getUser(call, callback) {
387
- const user = await userService.findById(call.request.id);
388
- callback(null, user);
389
- },
390
-
391
- async createUser(call, callback) {
392
- const user = await userService.create(call.request);
393
- callback(null, user);
394
- },
395
-
396
- async streamUsers(call) {
397
- const users = await userService.findAll();
398
- for (const user of users) {
399
- call.write(user);
400
- }
401
- call.end();
402
- },
403
- });
404
-
405
- server.bindAsync(
406
- '0.0.0.0:50051',
407
- grpc.ServerCredentials.createInsecure(),
408
- () => server.start()
409
- );
410
- ```
411
-
412
- ### gRPC Benefits
413
-
414
- - **Performance:** 7-10x faster than REST (binary protocol)
415
- - **Streaming:** Bi-directional streaming
416
- - **Type Safety:** Strong typing via Protocol Buffers
417
- - **Code Generation:** Auto-generate client/server code
418
- - **Best For:** Internal microservices, high-performance systems
419
-
420
- ## API Design Decision Matrix
421
-
422
- | Feature | REST | GraphQL | gRPC |
423
- |---------|------|---------|------|
424
- | **Use Case** | Public APIs, CRUD | Flexible data fetching | Microservices, performance |
425
- | **Performance** | Moderate | Moderate | Fastest (7-10x REST) |
426
- | **Caching** | HTTP caching built-in | Complex | No built-in caching |
427
- | **Browser Support** | Native | Native | Requires gRPC-Web |
428
- | **Learning Curve** | Easy | Moderate | Steep |
429
- | **Streaming** | Limited (SSE) | Subscriptions | Bi-directional |
430
- | **Tooling** | Excellent | Excellent | Good |
431
- | **Documentation** | OpenAPI/Swagger | Schema introspection | Protobuf definition |
432
-
433
- ## API Security Checklist
434
-
435
- - [ ] HTTPS/TLS only (no HTTP)
436
- - [ ] Authentication (OAuth 2.1, JWT, API keys)
437
- - [ ] Authorization (RBAC, check permissions)
438
- - [ ] Rate limiting (prevent abuse)
439
- - [ ] Input validation (all endpoints)
440
- - [ ] CORS configured properly
441
- - [ ] Security headers (CSP, HSTS, X-Frame-Options)
442
- - [ ] API versioning implemented
443
- - [ ] Error messages don't leak system info
444
- - [ ] Audit logging (who did what, when)
445
-
446
- ## API Documentation
447
-
448
- ### OpenAPI/Swagger (REST)
449
-
450
- ```yaml
451
- openapi: 3.0.0
452
- info:
453
- title: User API
454
- version: 1.0.0
455
- paths:
456
- /api/v1/users:
457
- get:
458
- summary: List users
459
- parameters:
460
- - name: limit
461
- in: query
462
- schema:
463
- type: integer
464
- default: 50
465
- responses:
466
- '200':
467
- description: Successful response
468
- content:
469
- application/json:
470
- schema:
471
- type: object
472
- properties:
473
- data:
474
- type: array
475
- items:
476
- $ref: '#/components/schemas/User'
477
- components:
478
- schemas:
479
- User:
480
- type: object
481
- properties:
482
- id:
483
- type: string
484
- email:
485
- type: string
486
- name:
487
- type: string
488
- ```
489
-
490
- ## Resources
491
-
492
- - **REST Best Practices:** https://restfulapi.net/
493
- - **GraphQL:** https://graphql.org/learn/
494
- - **gRPC:** https://grpc.io/docs/
495
- - **OpenAPI:** https://swagger.io/specification/
1
+ # Backend API Design
2
+
3
+ Comprehensive guide to designing RESTful, GraphQL, and gRPC APIs with best practices (2025).
4
+
5
+ ## REST API Design
6
+
7
+ ### Resource-Based URLs
8
+
9
+ **Good:**
10
+ ```
11
+ GET /api/v1/users # List users
12
+ GET /api/v1/users/:id # Get specific user
13
+ POST /api/v1/users # Create user
14
+ PUT /api/v1/users/:id # Update user (full)
15
+ PATCH /api/v1/users/:id # Update user (partial)
16
+ DELETE /api/v1/users/:id # Delete user
17
+
18
+ GET /api/v1/users/:id/posts # Get user's posts
19
+ POST /api/v1/users/:id/posts # Create post for user
20
+ ```
21
+
22
+ **Bad (Avoid):**
23
+ ```
24
+ GET /api/v1/getUser?id=123 # RPC-style, not RESTful
25
+ POST /api/v1/createUser # Verb in URL
26
+ GET /api/v1/user-posts # Unclear relationship
27
+ ```
28
+
29
+ ### HTTP Status Codes (Meaningful Responses)
30
+
31
+ **Success:**
32
+ - `200 OK` - Successful GET, PUT, PATCH
33
+ - `201 Created` - Successful POST (resource created)
34
+ - `204 No Content` - Successful DELETE
35
+
36
+ **Client Errors:**
37
+ - `400 Bad Request` - Invalid input/validation error
38
+ - `401 Unauthorized` - Missing or invalid authentication
39
+ - `403 Forbidden` - Authenticated but not authorized
40
+ - `404 Not Found` - Resource doesn't exist
41
+ - `409 Conflict` - Resource conflict (duplicate email)
42
+ - `422 Unprocessable Entity` - Validation error (detailed)
43
+ - `429 Too Many Requests` - Rate limit exceeded
44
+
45
+ **Server Errors:**
46
+ - `500 Internal Server Error` - Generic server error
47
+ - `502 Bad Gateway` - Upstream service error
48
+ - `503 Service Unavailable` - Temporary downtime
49
+ - `504 Gateway Timeout` - Upstream service timeout
50
+
51
+ ### Request/Response Format
52
+
53
+ **Request:**
54
+ ```typescript
55
+ POST /api/v1/users
56
+ Content-Type: application/json
57
+
58
+ {
59
+ "email": "user@example.com",
60
+ "name": "John Doe",
61
+ "age": 30
62
+ }
63
+ ```
64
+
65
+ **Success Response:**
66
+ ```typescript
67
+ HTTP/1.1 201 Created
68
+ Content-Type: application/json
69
+ Location: /api/v1/users/123
70
+
71
+ {
72
+ "id": "123",
73
+ "email": "user@example.com",
74
+ "name": "John Doe",
75
+ "age": 30,
76
+ "createdAt": "2025-01-09T12:00:00Z",
77
+ "updatedAt": "2025-01-09T12:00:00Z"
78
+ }
79
+ ```
80
+
81
+ **Error Response:**
82
+ ```typescript
83
+ HTTP/1.1 400 Bad Request
84
+ Content-Type: application/json
85
+
86
+ {
87
+ "error": {
88
+ "code": "VALIDATION_ERROR",
89
+ "message": "Invalid input data",
90
+ "details": [
91
+ {
92
+ "field": "email",
93
+ "message": "Invalid email format",
94
+ "value": "invalid-email"
95
+ },
96
+ {
97
+ "field": "age",
98
+ "message": "Age must be between 18 and 120",
99
+ "value": 15
100
+ }
101
+ ],
102
+ "timestamp": "2025-01-09T12:00:00Z",
103
+ "path": "/api/v1/users"
104
+ }
105
+ }
106
+ ```
107
+
108
+ ### Pagination
109
+
110
+ ```typescript
111
+ // Request
112
+ GET /api/v1/users?page=2&limit=50
113
+
114
+ // Response
115
+ {
116
+ "data": [...],
117
+ "pagination": {
118
+ "page": 2,
119
+ "limit": 50,
120
+ "total": 1234,
121
+ "totalPages": 25,
122
+ "hasNext": true,
123
+ "hasPrev": true
124
+ },
125
+ "links": {
126
+ "first": "/api/v1/users?page=1&limit=50",
127
+ "prev": "/api/v1/users?page=1&limit=50",
128
+ "next": "/api/v1/users?page=3&limit=50",
129
+ "last": "/api/v1/users?page=25&limit=50"
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### Filtering and Sorting
135
+
136
+ ```
137
+ GET /api/v1/users?status=active&role=admin&sort=-createdAt,name&limit=20
138
+
139
+ # Filters: status=active AND role=admin
140
+ # Sort: createdAt DESC, name ASC
141
+ # Limit: 20 results
142
+ ```
143
+
144
+ ### API Versioning Strategies
145
+
146
+ **URL Versioning (Most Common):**
147
+ ```
148
+ /api/v1/users
149
+ /api/v2/users
150
+ ```
151
+
152
+ **Header Versioning:**
153
+ ```
154
+ GET /api/users
155
+ Accept: application/vnd.myapi.v2+json
156
+ ```
157
+
158
+ **Query Parameter:**
159
+ ```
160
+ /api/users?version=2
161
+ ```
162
+
163
+ **Recommendation:** URL versioning for simplicity and discoverability
164
+
165
+ ### REST API Implementation (ASP.NET Core)
166
+
167
+ ```csharp
168
+ // UsersController.cs - RESTful API with best practices
169
+ [ApiController]
170
+ [Route("api/v1/[controller]")]
171
+ [Produces("application/json")]
172
+ public class UsersController : ControllerBase
173
+ {
174
+ private readonly IUserService _userService;
175
+
176
+ public UsersController(IUserService userService) => _userService = userService;
177
+
178
+ /// <summary>List users with pagination</summary>
179
+ [HttpGet]
180
+ [ProducesResponseType(typeof(PagedResult<UserDto>), StatusCodes.Status200OK)]
181
+ public async Task<IActionResult> GetUsers(
182
+ [FromQuery] int page = 1,
183
+ [FromQuery] int limit = 50,
184
+ [FromQuery] string? status = null,
185
+ [FromQuery] string? sort = null)
186
+ {
187
+ var result = await _userService.GetUsersAsync(page, limit, status, sort);
188
+ return Ok(result);
189
+ }
190
+
191
+ /// <summary>Get user by ID</summary>
192
+ [HttpGet("{id}")]
193
+ [ProducesResponseType(typeof(UserDto), StatusCodes.Status200OK)]
194
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
195
+ public async Task<IActionResult> GetUser(string id)
196
+ {
197
+ var user = await _userService.GetByIdAsync(id);
198
+ return user is null ? NotFound() : Ok(user);
199
+ }
200
+
201
+ /// <summary>Create new user</summary>
202
+ [HttpPost]
203
+ [ProducesResponseType(typeof(UserDto), StatusCodes.Status201Created)]
204
+ [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
205
+ public async Task<IActionResult> CreateUser([FromBody] CreateUserDto dto)
206
+ {
207
+ var user = await _userService.CreateAsync(dto);
208
+ return CreatedAtAction(nameof(GetUser), new { id = user.Id }, user);
209
+ }
210
+
211
+ /// <summary>Update user (full)</summary>
212
+ [HttpPut("{id}")]
213
+ [ProducesResponseType(typeof(UserDto), StatusCodes.Status200OK)]
214
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
215
+ public async Task<IActionResult> UpdateUser(string id, [FromBody] UpdateUserDto dto)
216
+ {
217
+ var user = await _userService.UpdateAsync(id, dto);
218
+ return user is null ? NotFound() : Ok(user);
219
+ }
220
+
221
+ /// <summary>Delete user</summary>
222
+ [HttpDelete("{id}")]
223
+ [ProducesResponseType(StatusCodes.Status204NoContent)]
224
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
225
+ public async Task<IActionResult> DeleteUser(string id)
226
+ {
227
+ var deleted = await _userService.DeleteAsync(id);
228
+ return deleted ? NoContent() : NotFound();
229
+ }
230
+
231
+ /// <summary>Get user's posts</summary>
232
+ [HttpGet("{id}/posts")]
233
+ [ProducesResponseType(typeof(IEnumerable<PostDto>), StatusCodes.Status200OK)]
234
+ public async Task<IActionResult> GetUserPosts(string id)
235
+ {
236
+ var posts = await _userService.GetUserPostsAsync(id);
237
+ return Ok(posts);
238
+ }
239
+ }
240
+
241
+ // DTOs with validation
242
+ public record CreateUserDto(
243
+ [Required][EmailAddress] string Email,
244
+ [Required][StringLength(100, MinimumLength = 2)] string Name,
245
+ [Range(18, 120)] int? Age
246
+ );
247
+
248
+ public record UpdateUserDto(
249
+ [EmailAddress] string? Email,
250
+ [StringLength(100, MinimumLength = 2)] string? Name
251
+ );
252
+
253
+ // Pagination response
254
+ public record PagedResult<T>(
255
+ IEnumerable<T> Data,
256
+ PaginationMeta Pagination,
257
+ PaginationLinks Links
258
+ );
259
+
260
+ public record PaginationMeta(int Page, int Limit, int Total, int TotalPages, bool HasNext, bool HasPrev);
261
+ public record PaginationLinks(string First, string? Prev, string? Next, string Last);
262
+ ```
263
+
264
+ ### REST API Implementation (Node.js/Express)
265
+
266
+ ```typescript
267
+ // Express router with TypeScript
268
+ import { Router, Request, Response } from 'express';
269
+
270
+ const router = Router();
271
+
272
+ // GET /api/v1/users - List users
273
+ router.get('/users', async (req: Request, res: Response) => {
274
+ const { page = 1, limit = 50, status, sort } = req.query;
275
+ const result = await userService.findAll({ page, limit, status, sort });
276
+ res.json(result);
277
+ });
278
+
279
+ // GET /api/v1/users/:id - Get user
280
+ router.get('/users/:id', async (req: Request, res: Response) => {
281
+ const user = await userService.findById(req.params.id);
282
+ if (!user) return res.status(404).json({ error: 'User not found' });
283
+ res.json(user);
284
+ });
285
+
286
+ // POST /api/v1/users - Create user
287
+ router.post('/users', async (req: Request, res: Response) => {
288
+ const user = await userService.create(req.body);
289
+ res.status(201).location(`/api/v1/users/${user.id}`).json(user);
290
+ });
291
+
292
+ // PUT /api/v1/users/:id - Update user
293
+ router.put('/users/:id', async (req: Request, res: Response) => {
294
+ const user = await userService.update(req.params.id, req.body);
295
+ if (!user) return res.status(404).json({ error: 'User not found' });
296
+ res.json(user);
297
+ });
298
+
299
+ // DELETE /api/v1/users/:id - Delete user
300
+ router.delete('/users/:id', async (req: Request, res: Response) => {
301
+ const deleted = await userService.delete(req.params.id);
302
+ if (!deleted) return res.status(404).json({ error: 'User not found' });
303
+ res.status(204).send();
304
+ });
305
+
306
+ export default router;
307
+ ```
308
+
309
+ ## GraphQL API Design
310
+
311
+ ### Schema Definition
312
+
313
+ ```graphql
314
+ type User {
315
+ id: ID!
316
+ email: String!
317
+ name: String!
318
+ posts: [Post!]!
319
+ createdAt: DateTime!
320
+ }
321
+
322
+ type Post {
323
+ id: ID!
324
+ title: String!
325
+ content: String!
326
+ author: User!
327
+ published: Boolean!
328
+ createdAt: DateTime!
329
+ }
330
+
331
+ type Query {
332
+ user(id: ID!): User
333
+ users(limit: Int = 50, offset: Int = 0): [User!]!
334
+ post(id: ID!): Post
335
+ posts(authorId: ID, published: Boolean): [Post!]!
336
+ }
337
+
338
+ type Mutation {
339
+ createUser(input: CreateUserInput!): User!
340
+ updateUser(id: ID!, input: UpdateUserInput!): User!
341
+ deleteUser(id: ID!): Boolean!
342
+
343
+ createPost(input: CreatePostInput!): Post!
344
+ publishPost(id: ID!): Post!
345
+ }
346
+
347
+ input CreateUserInput {
348
+ email: String!
349
+ name: String!
350
+ password: String!
351
+ }
352
+
353
+ input UpdateUserInput {
354
+ email: String
355
+ name: String
356
+ }
357
+ ```
358
+
359
+ ### Queries
360
+
361
+ ```graphql
362
+ # Flexible data fetching - client specifies exactly what they need
363
+ query {
364
+ user(id: "123") {
365
+ id
366
+ name
367
+ email
368
+ posts {
369
+ id
370
+ title
371
+ published
372
+ }
373
+ }
374
+ }
375
+
376
+ # With variables
377
+ query GetUser($userId: ID!) {
378
+ user(id: $userId) {
379
+ id
380
+ name
381
+ posts(published: true) {
382
+ title
383
+ }
384
+ }
385
+ }
386
+ ```
387
+
388
+ ### Mutations
389
+
390
+ ```graphql
391
+ mutation CreateUser($input: CreateUserInput!) {
392
+ createUser(input: $input) {
393
+ id
394
+ email
395
+ name
396
+ createdAt
397
+ }
398
+ }
399
+
400
+ # Variables
401
+ {
402
+ "input": {
403
+ "email": "user@example.com",
404
+ "name": "John Doe",
405
+ "password": "SecurePass123!"
406
+ }
407
+ }
408
+ ```
409
+
410
+ ### Resolvers (NestJS Example)
411
+
412
+ ```typescript
413
+ @Resolver(() => User)
414
+ export class UserResolver {
415
+ constructor(
416
+ private userService: UserService,
417
+ private postService: PostService,
418
+ ) {}
419
+
420
+ @Query(() => User, { nullable: true })
421
+ async user(@Args('id') id: string) {
422
+ return this.userService.findById(id);
423
+ }
424
+
425
+ @Query(() => [User])
426
+ async users(
427
+ @Args('limit', { defaultValue: 50 }) limit: number,
428
+ @Args('offset', { defaultValue: 0 }) offset: number,
429
+ ) {
430
+ return this.userService.findAll({ limit, offset });
431
+ }
432
+
433
+ @Mutation(() => User)
434
+ async createUser(@Args('input') input: CreateUserInput) {
435
+ return this.userService.create(input);
436
+ }
437
+
438
+ // Field resolver - lazy load posts
439
+ @ResolveField(() => [Post])
440
+ async posts(@Parent() user: User) {
441
+ return this.postService.findByAuthorId(user.id);
442
+ }
443
+ }
444
+ ```
445
+
446
+ ### GraphQL Best Practices
447
+
448
+ 1. **Avoid N+1 Problem** - Use DataLoader
449
+ ```typescript
450
+ import DataLoader from 'dataloader';
451
+
452
+ const postLoader = new DataLoader(async (authorIds: string[]) => {
453
+ const posts = await db.posts.findAll({ where: { authorId: authorIds } });
454
+ return authorIds.map(id => posts.filter(p => p.authorId === id));
455
+ });
456
+
457
+ // In resolver
458
+ @ResolveField(() => [Post])
459
+ async posts(@Parent() user: User) {
460
+ return this.postLoader.load(user.id);
461
+ }
462
+ ```
463
+
464
+ 2. **Pagination** - Relay-style cursor pagination
465
+ 3. **Error Handling** - Return errors in response
466
+ 4. **Depth Limiting** - Prevent deeply nested queries
467
+ 5. **Query Complexity Analysis** - Limit expensive queries
468
+
469
+ ## gRPC API Design
470
+
471
+ ### Protocol Buffers Schema
472
+
473
+ ```protobuf
474
+ syntax = "proto3";
475
+
476
+ package user;
477
+
478
+ service UserService {
479
+ rpc GetUser (GetUserRequest) returns (User);
480
+ rpc ListUsers (ListUsersRequest) returns (ListUsersResponse);
481
+ rpc CreateUser (CreateUserRequest) returns (User);
482
+ rpc UpdateUser (UpdateUserRequest) returns (User);
483
+ rpc DeleteUser (DeleteUserRequest) returns (DeleteUserResponse);
484
+
485
+ // Streaming
486
+ rpc StreamUsers (StreamUsersRequest) returns (stream User);
487
+ }
488
+
489
+ message User {
490
+ string id = 1;
491
+ string email = 2;
492
+ string name = 3;
493
+ int64 created_at = 4;
494
+ }
495
+
496
+ message GetUserRequest {
497
+ string id = 1;
498
+ }
499
+
500
+ message ListUsersRequest {
501
+ int32 limit = 1;
502
+ int32 offset = 2;
503
+ }
504
+
505
+ message ListUsersResponse {
506
+ repeated User users = 1;
507
+ int32 total = 2;
508
+ }
509
+
510
+ message CreateUserRequest {
511
+ string email = 1;
512
+ string name = 2;
513
+ string password = 3;
514
+ }
515
+ ```
516
+
517
+ ### Implementation (ASP.NET Core gRPC)
518
+
519
+ ```csharp
520
+ // UserService.cs - gRPC service implementation
521
+ public class UserService : User.UserBase
522
+ {
523
+ private readonly IUserRepository _userRepository;
524
+
525
+ public UserService(IUserRepository userRepository)
526
+ {
527
+ _userRepository = userRepository;
528
+ }
529
+
530
+ public override async Task<UserResponse> GetUser(
531
+ GetUserRequest request, ServerCallContext context)
532
+ {
533
+ var user = await _userRepository.FindByIdAsync(request.Id);
534
+ return new UserResponse
535
+ {
536
+ Id = user.Id,
537
+ Email = user.Email,
538
+ Name = user.Name
539
+ };
540
+ }
541
+
542
+ public override async Task<UserResponse> CreateUser(
543
+ CreateUserRequest request, ServerCallContext context)
544
+ {
545
+ var user = await _userRepository.CreateAsync(new User
546
+ {
547
+ Email = request.Email,
548
+ Name = request.Name
549
+ });
550
+ return new UserResponse { Id = user.Id, Email = user.Email };
551
+ }
552
+
553
+ public override async Task StreamUsers(
554
+ StreamUsersRequest request,
555
+ IServerStreamWriter<UserResponse> responseStream,
556
+ ServerCallContext context)
557
+ {
558
+ var users = await _userRepository.GetAllAsync();
559
+ foreach (var user in users)
560
+ {
561
+ await responseStream.WriteAsync(new UserResponse
562
+ {
563
+ Id = user.Id,
564
+ Email = user.Email
565
+ });
566
+ }
567
+ }
568
+ }
569
+
570
+ // Program.cs - Register gRPC service
571
+ builder.Services.AddGrpc();
572
+ app.MapGrpcService<UserService>();
573
+ ```
574
+
575
+ ### Implementation (Node.js)
576
+
577
+ ```typescript
578
+ import * as grpc from '@grpc/grpc-js';
579
+ import * as protoLoader from '@grpc/proto-loader';
580
+
581
+ const packageDefinition = protoLoader.loadSync('user.proto');
582
+ const userProto = grpc.loadPackageDefinition(packageDefinition).user;
583
+
584
+ // Server implementation
585
+ const server = new grpc.Server();
586
+
587
+ server.addService(userProto.UserService.service, {
588
+ async getUser(call, callback) {
589
+ const user = await userService.findById(call.request.id);
590
+ callback(null, user);
591
+ },
592
+
593
+ async createUser(call, callback) {
594
+ const user = await userService.create(call.request);
595
+ callback(null, user);
596
+ },
597
+
598
+ async streamUsers(call) {
599
+ const users = await userService.findAll();
600
+ for (const user of users) {
601
+ call.write(user);
602
+ }
603
+ call.end();
604
+ },
605
+ });
606
+
607
+ server.bindAsync(
608
+ '0.0.0.0:50051',
609
+ grpc.ServerCredentials.createInsecure(),
610
+ () => server.start()
611
+ );
612
+ ```
613
+
614
+ ### gRPC Benefits
615
+
616
+ - **Performance:** 7-10x faster than REST (binary protocol)
617
+ - **Streaming:** Bi-directional streaming
618
+ - **Type Safety:** Strong typing via Protocol Buffers
619
+ - **Code Generation:** Auto-generate client/server code
620
+ - **Best For:** Internal microservices, high-performance systems
621
+
622
+ ## API Design Decision Matrix
623
+
624
+ | Feature | REST | GraphQL | gRPC |
625
+ |---------|------|---------|------|
626
+ | **Use Case** | Public APIs, CRUD | Flexible data fetching | Microservices, performance |
627
+ | **Performance** | Moderate | Moderate | Fastest (7-10x REST) |
628
+ | **Caching** | HTTP caching built-in | Complex | No built-in caching |
629
+ | **Browser Support** | Native | Native | Requires gRPC-Web |
630
+ | **Learning Curve** | Easy | Moderate | Steep |
631
+ | **Streaming** | Limited (SSE) | Subscriptions | Bi-directional |
632
+ | **Tooling** | Excellent | Excellent | Good |
633
+ | **Documentation** | OpenAPI/Swagger | Schema introspection | Protobuf definition |
634
+
635
+ ## API Security Checklist
636
+
637
+ - [ ] HTTPS/TLS only (no HTTP)
638
+ - [ ] Authentication (OAuth 2.1, JWT, API keys)
639
+ - [ ] Authorization (RBAC, check permissions)
640
+ - [ ] Rate limiting (prevent abuse)
641
+ - [ ] Input validation (all endpoints)
642
+ - [ ] CORS configured properly
643
+ - [ ] Security headers (CSP, HSTS, X-Frame-Options)
644
+ - [ ] API versioning implemented
645
+ - [ ] Error messages don't leak system info
646
+ - [ ] Audit logging (who did what, when)
647
+
648
+ ## API Documentation
649
+
650
+ ### OpenAPI/Swagger (REST)
651
+
652
+ ```yaml
653
+ openapi: 3.0.0
654
+ info:
655
+ title: User API
656
+ version: 1.0.0
657
+ paths:
658
+ /api/v1/users:
659
+ get:
660
+ summary: List users
661
+ parameters:
662
+ - name: limit
663
+ in: query
664
+ schema:
665
+ type: integer
666
+ default: 50
667
+ responses:
668
+ '200':
669
+ description: Successful response
670
+ content:
671
+ application/json:
672
+ schema:
673
+ type: object
674
+ properties:
675
+ data:
676
+ type: array
677
+ items:
678
+ $ref: '#/components/schemas/User'
679
+ components:
680
+ schemas:
681
+ User:
682
+ type: object
683
+ properties:
684
+ id:
685
+ type: string
686
+ email:
687
+ type: string
688
+ name:
689
+ type: string
690
+ ```
691
+
692
+ ## Resources
693
+
694
+ - **REST Best Practices:** https://restfulapi.net/
695
+ - **GraphQL:** https://graphql.org/learn/
696
+ - **gRPC:** https://grpc.io/docs/
697
+ - **OpenAPI:** https://swagger.io/specification/