cokit-cli 1.0.9 → 1.2.2

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 (888) hide show
  1. package/LICENSE +32 -32
  2. package/README.FLOW.md +237 -237
  3. package/README.md +142 -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 +31 -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 +57 -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 +138 -0
  26. package/docs/cokit-comprehensive-mapping-guide.md +361 -374
  27. package/docs/cokit-slides.md +212 -222
  28. package/docs/cokit-sync-and-maintenance-guide.md +414 -0
  29. package/docs/cokit-team-presentation.md +356 -378
  30. package/docs/copilot-processing-flow.md +215 -212
  31. package/docs/guide-next-steps-speckit-cokit-implementation.md +187 -0
  32. package/docs/migration-guide.md +133 -133
  33. package/docs/project-overview-pdr.md +45 -0
  34. package/docs/project-roadmap.md +308 -280
  35. package/docs/system-architecture.md +81 -0
  36. package/instructions/ck-backend.instructions.md +48 -48
  37. package/instructions/ck-development.instructions.md +54 -54
  38. package/instructions/ck-frontend.instructions.md +44 -44
  39. package/instructions/ck-research.instructions.md +167 -167
  40. package/instructions/ck-testing.instructions.md +36 -36
  41. package/package.json +71 -42
  42. package/prompts/ck-ask.prompt.md +67 -57
  43. package/prompts/ck-bootstrap.prompt.md +141 -136
  44. package/prompts/ck-brainstorm.prompt.md +87 -105
  45. package/prompts/ck-cook.prompt.md +96 -97
  46. package/prompts/ck-debug.prompt.md +115 -14
  47. package/prompts/ck-docs.prompt.md +102 -51
  48. package/prompts/ck-fix-ci.prompt.md +46 -0
  49. package/prompts/ck-fix-fast.prompt.md +44 -0
  50. package/prompts/ck-fix-hard.prompt.md +60 -0
  51. package/prompts/ck-fix-logs.prompt.md +53 -0
  52. package/prompts/ck-fix-test.prompt.md +47 -0
  53. package/prompts/ck-fix-types.prompt.md +29 -0
  54. package/prompts/ck-fix-ui.prompt.md +50 -0
  55. package/prompts/ck-fix.prompt.md +50 -44
  56. package/prompts/ck-git.prompt.md +104 -79
  57. package/{templates/repo/.github/prompts/ck-ck-help.prompt.md → prompts/ck-help.prompt.md} +142 -112
  58. package/prompts/ck-journal.prompt.md +19 -0
  59. package/prompts/ck-plan-fast.prompt.md +106 -0
  60. package/prompts/ck-plan-hard.prompt.md +133 -0
  61. package/prompts/ck-plan-validate.prompt.md +209 -0
  62. package/prompts/ck-plan.prompt.md +75 -80
  63. package/prompts/ck-preview.prompt.md +77 -0
  64. package/{templates/repo/.github/prompts/ck-review-codebase.prompt.md → prompts/ck-review.prompt.md} +58 -44
  65. package/prompts/ck-scout.prompt.md +85 -25
  66. package/prompts/ck-simplify.prompt.md +46 -0
  67. package/prompts/ck-spec-analyze.prompt.md +201 -0
  68. package/prompts/ck-spec-checklist.prompt.md +308 -0
  69. package/prompts/ck-spec-clarify.prompt.md +190 -0
  70. package/prompts/ck-spec-constitution.prompt.md +92 -0
  71. package/prompts/ck-spec-implement.prompt.md +157 -0
  72. package/prompts/ck-spec-plan.prompt.md +95 -0
  73. package/prompts/ck-spec-specify.prompt.md +260 -0
  74. package/prompts/ck-spec-tasks.prompt.md +181 -0
  75. package/prompts/ck-test.prompt.md +21 -10
  76. package/prompts/ck-watzup.prompt.md +21 -0
  77. package/skills/INSTALLATION.md +311 -0
  78. package/skills/README.md +112 -0
  79. package/skills/THIRD_PARTY_NOTICES.md +405 -0
  80. package/skills/agent-browser/SKILL.md +291 -0
  81. package/skills/agent-browser/references/.gitkeep +0 -0
  82. package/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  83. package/skills/agent_skills_spec.md +55 -0
  84. package/skills/{ck-backend-development → backend-development}/SKILL.md +94 -96
  85. package/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  86. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-architecture.md +454 -454
  87. package/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  88. package/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  89. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-debugging.md +904 -904
  90. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-devops.md +494 -494
  91. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-mindset.md +387 -387
  92. package/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  93. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-security.md +340 -290
  94. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-technologies.md +300 -290
  95. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-testing.md +484 -561
  96. package/skills/brainstorm/SKILL.md +74 -0
  97. package/skills/{ck-code-review → code-review}/SKILL.md +143 -143
  98. package/skills/{ck-code-review → code-review}/references/code-review-reception.md +1 -1
  99. package/skills/{ck-code-review → code-review}/references/requesting-code-review.md +7 -7
  100. package/skills/common/README.md +120 -0
  101. package/skills/common/api_key_helper.py +411 -0
  102. package/skills/common/api_key_rotator.py +248 -0
  103. package/skills/context-engineering/SKILL.md +106 -0
  104. package/skills/context-engineering/references/context-compression.md +84 -0
  105. package/skills/context-engineering/references/context-degradation.md +93 -0
  106. package/skills/context-engineering/references/context-fundamentals.md +75 -0
  107. package/skills/context-engineering/references/context-optimization.md +82 -0
  108. package/skills/context-engineering/references/evaluation.md +89 -0
  109. package/skills/context-engineering/references/memory-systems.md +88 -0
  110. package/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  111. package/skills/context-engineering/references/project-development.md +97 -0
  112. package/skills/context-engineering/references/runtime-awareness.md +202 -0
  113. package/skills/context-engineering/references/tool-design.md +86 -0
  114. package/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  115. package/skills/context-engineering/scripts/context_analyzer.py +317 -0
  116. package/skills/cook/README.md +86 -0
  117. package/skills/cook/SKILL.md +93 -0
  118. package/skills/cook/references/agent-patterns.md +75 -0
  119. package/skills/cook/references/intent-detection.md +101 -0
  120. package/skills/cook/references/review-cycle.md +75 -0
  121. package/skills/cook/references/workflow-steps.md +140 -0
  122. package/skills/databases/SKILL.md +111 -0
  123. package/skills/databases/analytics.md +198 -0
  124. package/skills/databases/db-design.md +188 -0
  125. package/skills/databases/incremental-etl.md +213 -0
  126. package/skills/databases/references/mongodb-aggregation.md +447 -0
  127. package/skills/databases/references/mongodb-atlas.md +465 -0
  128. package/skills/databases/references/mongodb-crud.md +408 -0
  129. package/skills/databases/references/mongodb-indexing.md +442 -0
  130. package/skills/databases/references/postgresql-administration.md +594 -0
  131. package/skills/databases/references/postgresql-performance.md +527 -0
  132. package/skills/databases/references/postgresql-psql-cli.md +467 -0
  133. package/skills/databases/references/postgresql-queries.md +475 -0
  134. package/skills/databases/scripts/db_backup.py +502 -0
  135. package/skills/databases/scripts/db_migrate.py +426 -0
  136. package/skills/databases/scripts/db_performance_check.py +457 -0
  137. package/skills/databases/scripts/requirements.txt +20 -0
  138. package/skills/databases/stacks/bigquery.md +231 -0
  139. package/skills/databases/stacks/d1_cloudflare.md +137 -0
  140. package/skills/databases/stacks/mysql.md +216 -0
  141. package/skills/databases/stacks/postgres.md +235 -0
  142. package/skills/databases/stacks/sqlite.md +244 -0
  143. package/skills/databases/transactional.md +176 -0
  144. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/SKILL.md +83 -82
  145. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/defense-in-depth.md +124 -124
  146. package/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  147. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/systematic-debugging.md +102 -102
  148. package/skills/{ck-debugging → debug}/references/verification.md +123 -123
  149. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.sh +63 -63
  150. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.test.md +102 -102
  151. package/skills/devops/.env.example +76 -0
  152. package/skills/devops/SKILL.md +102 -0
  153. package/skills/devops/references/browser-rendering.md +305 -0
  154. package/skills/devops/references/cloudflare-d1-kv.md +123 -0
  155. package/skills/devops/references/cloudflare-platform.md +271 -0
  156. package/skills/devops/references/cloudflare-r2-storage.md +280 -0
  157. package/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  158. package/skills/devops/references/cloudflare-workers-apis.md +309 -0
  159. package/skills/devops/references/cloudflare-workers-basics.md +418 -0
  160. package/skills/devops/references/docker-basics.md +297 -0
  161. package/skills/devops/references/docker-compose.md +292 -0
  162. package/skills/devops/references/gcloud-platform.md +297 -0
  163. package/skills/devops/references/gcloud-services.md +304 -0
  164. package/skills/devops/references/kubernetes-basics.md +99 -0
  165. package/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  166. package/skills/devops/references/kubernetes-helm.md +81 -0
  167. package/skills/devops/references/kubernetes-kubectl.md +74 -0
  168. package/skills/devops/references/kubernetes-security-advanced.md +98 -0
  169. package/skills/devops/references/kubernetes-security.md +95 -0
  170. package/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  171. package/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  172. package/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  173. package/skills/devops/references/kubernetes-workflows.md +78 -0
  174. package/skills/devops/scripts/cloudflare_deploy.py +269 -0
  175. package/skills/devops/scripts/docker_optimize.py +332 -0
  176. package/skills/devops/scripts/requirements.txt +20 -0
  177. package/skills/docs-seeker/.env.example +15 -0
  178. package/skills/docs-seeker/SKILL.md +96 -0
  179. package/skills/docs-seeker/package.json +25 -0
  180. package/skills/docs-seeker/references/advanced.md +79 -0
  181. package/skills/docs-seeker/references/context7-patterns.md +64 -0
  182. package/skills/docs-seeker/references/errors.md +68 -0
  183. package/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  184. package/skills/docs-seeker/scripts/detect-topic.js +172 -0
  185. package/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  186. package/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  187. package/skills/docs-seeker/workflows/library-search.md +86 -0
  188. package/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  189. package/skills/docs-seeker/workflows/topic-search.md +77 -0
  190. package/skills/fix/SKILL.md +100 -0
  191. package/skills/fix/references/complexity-assessment.md +61 -0
  192. package/skills/fix/references/mode-selection.md +30 -0
  193. package/skills/fix/references/parallel-exploration.md +77 -0
  194. package/skills/fix/references/review-cycle.md +77 -0
  195. package/skills/fix/references/skill-activation-matrix.md +65 -0
  196. package/skills/fix/references/workflow-ci.md +28 -0
  197. package/skills/fix/references/workflow-deep.md +91 -0
  198. package/skills/fix/references/workflow-logs.md +36 -0
  199. package/skills/fix/references/workflow-quick.md +59 -0
  200. package/skills/fix/references/workflow-standard.md +86 -0
  201. package/skills/fix/references/workflow-test.md +36 -0
  202. package/skills/fix/references/workflow-types.md +33 -0
  203. package/skills/fix/references/workflow-ui.md +34 -0
  204. package/skills/frontend-design/SKILL.md +74 -0
  205. package/skills/frontend-design/references/analysis-best-practices.md +80 -0
  206. package/skills/frontend-design/references/analysis-prompts.md +141 -0
  207. package/skills/frontend-design/references/analysis-techniques.md +118 -0
  208. package/skills/frontend-design/references/animejs.md +396 -0
  209. package/skills/frontend-design/references/asset-generation.md +161 -0
  210. package/skills/frontend-design/references/design-extraction-overview.md +71 -0
  211. package/skills/frontend-design/references/extraction-best-practices.md +141 -0
  212. package/skills/frontend-design/references/extraction-output-templates.md +162 -0
  213. package/skills/frontend-design/references/extraction-prompts.md +127 -0
  214. package/skills/frontend-design/references/technical-accessibility.md +119 -0
  215. package/skills/frontend-design/references/technical-best-practices.md +97 -0
  216. package/skills/frontend-design/references/technical-optimization.md +44 -0
  217. package/skills/frontend-design/references/technical-overview.md +90 -0
  218. package/skills/frontend-design/references/technical-workflows.md +150 -0
  219. package/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  220. package/skills/frontend-design/references/workflow-describe.md +86 -0
  221. package/skills/frontend-design/references/workflow-quick.md +54 -0
  222. package/skills/frontend-design/references/workflow-screenshot.md +62 -0
  223. package/skills/git/SKILL.md +99 -0
  224. package/skills/git/references/branch-management.md +88 -0
  225. package/skills/git/references/commit-standards.md +46 -0
  226. package/skills/git/references/gh-cli-guide.md +109 -0
  227. package/skills/git/references/safety-protocols.md +69 -0
  228. package/skills/git/references/workflow-commit.md +58 -0
  229. package/skills/git/references/workflow-merge.md +48 -0
  230. package/skills/git/references/workflow-pr.md +58 -0
  231. package/skills/git/references/workflow-push.md +52 -0
  232. package/skills/install.ps1 +1247 -0
  233. package/skills/install.sh +1300 -0
  234. package/skills/mcp-management/README.md +219 -0
  235. package/skills/mcp-management/SKILL.md +209 -0
  236. package/skills/mcp-management/assets/tools.json +3146 -0
  237. package/skills/mcp-management/references/configuration.md +114 -0
  238. package/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  239. package/skills/mcp-management/references/mcp-protocol.md +116 -0
  240. package/skills/mcp-management/scripts/.env.example +10 -0
  241. package/skills/mcp-management/scripts/cli.ts +195 -0
  242. package/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  243. package/skills/mcp-management/scripts/dist/cli.js +160 -0
  244. package/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  245. package/skills/mcp-management/scripts/mcp-client.ts +230 -0
  246. package/skills/mcp-management/scripts/package.json +20 -0
  247. package/skills/mcp-management/scripts/tsconfig.json +15 -0
  248. package/skills/mermaidjs-v11/SKILL.md +115 -0
  249. package/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  250. package/skills/mermaidjs-v11/references/configuration.md +232 -0
  251. package/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  252. package/skills/mermaidjs-v11/references/examples.md +344 -0
  253. package/skills/mermaidjs-v11/references/integration.md +310 -0
  254. package/skills/{ck-planning → planning}/SKILL.md +131 -112
  255. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/codebase-understanding.md +62 -62
  256. package/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  257. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/plan-organization.md +160 -150
  258. package/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  259. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/solution-design.md +63 -63
  260. package/skills/{ck-problem-solving → problem-solving}/SKILL.md +95 -95
  261. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/attribution.md +69 -69
  262. package/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  263. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/inversion-exercise.md +91 -91
  264. package/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  265. package/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  266. package/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  267. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/when-stuck.md +72 -72
  268. package/skills/repomix/SKILL.md +247 -0
  269. package/skills/repomix/references/configuration.md +211 -0
  270. package/skills/repomix/references/usage-patterns.md +232 -0
  271. package/skills/repomix/scripts/README.md +179 -0
  272. package/skills/repomix/scripts/repomix_batch.py +455 -0
  273. package/skills/repomix/scripts/repos.example.json +15 -0
  274. package/skills/repomix/scripts/requirements.txt +15 -0
  275. package/skills/research/SKILL.md +169 -0
  276. package/skills/scout/SKILL.md +78 -0
  277. package/skills/scout/references/external-scouting.md +140 -0
  278. package/skills/scout/references/internal-scouting.md +119 -0
  279. package/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  280. package/skills/{ck-sequential-thinking → sequential-thinking}/README.md +183 -183
  281. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/SKILL.md +92 -92
  282. package/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  283. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  284. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  285. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/core-patterns.md +95 -95
  286. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  287. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  288. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  289. package/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  290. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/scripts/process-thought.js +236 -236
  291. package/skills/ui-styling/LICENSE.txt +202 -0
  292. package/skills/ui-styling/SKILL.md +319 -0
  293. package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  294. package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  295. package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  296. package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  297. package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  298. package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  299. package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  300. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  301. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  302. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  303. package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  304. package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  305. package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  306. package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  307. package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  308. package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  309. package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  310. package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  311. package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  312. package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  313. package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  314. package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  315. package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  316. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  317. package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  318. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  319. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  320. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  321. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  322. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  323. package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  324. package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  325. package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  326. package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  327. package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  328. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  329. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  330. package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  331. package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  332. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  333. package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  334. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  335. package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  336. package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  337. package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  338. package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  339. package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  340. package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  341. package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  342. package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  343. package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  344. package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  345. package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  346. package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  347. package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  348. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  349. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  350. package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  351. package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  352. package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  353. package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  354. package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  355. package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  356. package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  357. package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  358. package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  359. package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  360. package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  361. package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  362. package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  363. package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  364. package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  365. package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  366. package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  367. package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  368. package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  369. package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  370. package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  371. package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  372. package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  373. package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  374. package/skills/ui-styling/references/canvas-design-system.md +320 -0
  375. package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  376. package/skills/ui-styling/references/shadcn-components.md +424 -0
  377. package/skills/ui-styling/references/shadcn-theming.md +373 -0
  378. package/skills/ui-styling/references/tailwind-customization.md +483 -0
  379. package/skills/ui-styling/references/tailwind-responsive.md +382 -0
  380. package/skills/ui-styling/references/tailwind-utilities.md +455 -0
  381. package/skills/ui-styling/scripts/requirements.txt +17 -0
  382. package/skills/ui-styling/scripts/shadcn_add.py +292 -0
  383. package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  384. package/skills/web-testing/SKILL.md +94 -0
  385. package/skills/web-testing/references/accessibility-testing.md +84 -0
  386. package/skills/web-testing/references/api-testing.md +78 -0
  387. package/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  388. package/skills/web-testing/references/component-testing.md +94 -0
  389. package/skills/web-testing/references/contract-testing.md +146 -0
  390. package/skills/web-testing/references/cross-browser-checklist.md +72 -0
  391. package/skills/web-testing/references/database-testing.md +139 -0
  392. package/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  393. package/skills/web-testing/references/functional-testing-checklist.md +88 -0
  394. package/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  395. package/skills/web-testing/references/load-testing-k6.md +93 -0
  396. package/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  397. package/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  398. package/skills/web-testing/references/playwright-component-testing.md +115 -0
  399. package/skills/web-testing/references/pre-release-checklist.md +75 -0
  400. package/skills/web-testing/references/security-checklists.md +81 -0
  401. package/skills/web-testing/references/security-testing-overview.md +92 -0
  402. package/skills/web-testing/references/shadow-dom-testing.md +70 -0
  403. package/skills/web-testing/references/test-data-management.md +131 -0
  404. package/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  405. package/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  406. package/skills/web-testing/references/unit-integration-testing.md +138 -0
  407. package/skills/web-testing/references/visual-regression.md +92 -0
  408. package/skills/web-testing/references/vulnerability-payloads.md +93 -0
  409. package/skills/web-testing/scripts/analyze-test-results.js +280 -0
  410. package/skills/web-testing/scripts/init-playwright.js +233 -0
  411. package/src/commands/add.js +93 -93
  412. package/src/commands/doctor.js +117 -117
  413. package/src/commands/init.js +183 -183
  414. package/src/commands/list.js +91 -91
  415. package/src/commands/update.js +22 -22
  416. package/src/index.js +35 -35
  417. package/src/utils/colors.js +14 -14
  418. package/src/utils/copy.js +122 -122
  419. package/src/utils/paths.js +66 -66
  420. package/src/utils/update-checker.js +126 -126
  421. package/templates/repo/.github/AGENTS.md +103 -55
  422. package/templates/repo/.github/agents/brainstormer.agent.md +71 -71
  423. package/templates/repo/.github/agents/code-reviewer.agent.md +136 -136
  424. package/templates/repo/.github/agents/code-simplifier.agent.md +43 -0
  425. package/templates/repo/.github/agents/debugger.agent.md +128 -128
  426. package/templates/repo/.github/agents/docs-manager.agent.md +121 -121
  427. package/templates/repo/.github/agents/fullstack-developer.agent.md +52 -0
  428. package/templates/repo/.github/agents/git-manager.agent.md +390 -390
  429. package/templates/repo/.github/agents/planner.agent.md +94 -94
  430. package/templates/repo/.github/agents/researcher.agent.md +31 -32
  431. package/templates/repo/.github/agents/scout.agent.md +107 -107
  432. package/templates/repo/.github/agents/tester.agent.md +117 -117
  433. package/templates/repo/.github/agents/ui-ux-designer.agent.md +57 -0
  434. package/templates/repo/.github/collections/ck-core.collection.yml +28 -28
  435. package/templates/repo/.github/collections/ck-development-rules.collection.yml +18 -18
  436. package/templates/repo/.github/collections/ck-documentation.collection.yml +14 -14
  437. package/templates/repo/.github/collections/ck-git-workflow.collection.yml +12 -12
  438. package/templates/repo/.github/collections/ck-orchestration.collection.yml +16 -16
  439. package/templates/repo/.github/instructions/ck-backend.instructions.md +48 -48
  440. package/templates/repo/.github/instructions/ck-development.instructions.md +54 -54
  441. package/templates/repo/.github/instructions/ck-frontend.instructions.md +44 -44
  442. package/templates/repo/.github/instructions/ck-research.instructions.md +167 -167
  443. package/templates/repo/.github/instructions/ck-testing.instructions.md +36 -36
  444. package/templates/repo/.github/prompts/ck-ask.prompt.md +67 -57
  445. package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +141 -136
  446. package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +87 -105
  447. package/templates/repo/.github/prompts/ck-cook.prompt.md +96 -97
  448. package/templates/repo/.github/prompts/ck-debug.prompt.md +115 -14
  449. package/templates/repo/.github/prompts/ck-docs.prompt.md +102 -51
  450. package/templates/repo/.github/prompts/ck-fix-ci.prompt.md +46 -0
  451. package/templates/repo/.github/prompts/ck-fix-fast.prompt.md +44 -0
  452. package/templates/repo/.github/prompts/ck-fix-hard.prompt.md +60 -0
  453. package/templates/repo/.github/prompts/ck-fix-logs.prompt.md +53 -0
  454. package/templates/repo/.github/prompts/ck-fix-test.prompt.md +47 -0
  455. package/templates/repo/.github/prompts/ck-fix-types.prompt.md +29 -0
  456. package/templates/repo/.github/prompts/ck-fix-ui.prompt.md +50 -0
  457. package/templates/repo/.github/prompts/ck-fix.prompt.md +50 -44
  458. package/templates/repo/.github/prompts/ck-git.prompt.md +104 -79
  459. package/{prompts/ck-ck-help.prompt.md → templates/repo/.github/prompts/ck-help.prompt.md} +142 -112
  460. package/templates/repo/.github/prompts/ck-journal.prompt.md +19 -0
  461. package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +106 -0
  462. package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +133 -0
  463. package/templates/repo/.github/prompts/ck-plan-validate.prompt.md +209 -0
  464. package/templates/repo/.github/prompts/ck-plan.prompt.md +75 -80
  465. package/templates/repo/.github/prompts/ck-preview.prompt.md +77 -0
  466. package/{prompts/ck-review-codebase.prompt.md → templates/repo/.github/prompts/ck-review.prompt.md} +58 -44
  467. package/templates/repo/.github/prompts/ck-scout.prompt.md +85 -25
  468. package/templates/repo/.github/prompts/ck-simplify.prompt.md +46 -0
  469. package/templates/repo/.github/prompts/ck-spec-analyze.prompt.md +201 -0
  470. package/templates/repo/.github/prompts/ck-spec-checklist.prompt.md +308 -0
  471. package/templates/repo/.github/prompts/ck-spec-clarify.prompt.md +190 -0
  472. package/templates/repo/.github/prompts/ck-spec-constitution.prompt.md +92 -0
  473. package/templates/repo/.github/prompts/ck-spec-implement.prompt.md +157 -0
  474. package/templates/repo/.github/prompts/ck-spec-plan.prompt.md +95 -0
  475. package/templates/repo/.github/prompts/ck-spec-specify.prompt.md +260 -0
  476. package/templates/repo/.github/prompts/ck-spec-tasks.prompt.md +181 -0
  477. package/templates/repo/.github/prompts/ck-test.prompt.md +21 -10
  478. package/templates/repo/.github/prompts/ck-watzup.prompt.md +21 -0
  479. package/templates/repo/.github/skills/INSTALLATION.md +311 -0
  480. package/templates/repo/.github/skills/README.md +112 -0
  481. package/templates/repo/.github/skills/THIRD_PARTY_NOTICES.md +405 -0
  482. package/templates/repo/.github/skills/agent-browser/SKILL.md +291 -0
  483. package/templates/repo/.github/skills/agent-browser/references/.gitkeep +0 -0
  484. package/templates/repo/.github/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  485. package/templates/repo/.github/skills/agent_skills_spec.md +55 -0
  486. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/SKILL.md +94 -96
  487. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  488. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-architecture.md +454 -454
  489. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  490. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  491. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-debugging.md +904 -904
  492. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-devops.md +494 -494
  493. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-mindset.md +387 -387
  494. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  495. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-security.md +340 -290
  496. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-technologies.md +300 -290
  497. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-testing.md +484 -561
  498. package/templates/repo/.github/skills/brainstorm/SKILL.md +74 -0
  499. package/templates/repo/.github/skills/{ck-code-review → code-review}/SKILL.md +143 -143
  500. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/code-review-reception.md +208 -208
  501. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/requesting-code-review.md +104 -104
  502. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/verification-before-completion.md +138 -138
  503. package/templates/repo/.github/skills/common/README.md +120 -0
  504. package/templates/repo/.github/skills/common/api_key_helper.py +411 -0
  505. package/templates/repo/.github/skills/common/api_key_rotator.py +248 -0
  506. package/templates/repo/.github/skills/context-engineering/SKILL.md +106 -0
  507. package/templates/repo/.github/skills/context-engineering/references/context-compression.md +84 -0
  508. package/templates/repo/.github/skills/context-engineering/references/context-degradation.md +93 -0
  509. package/templates/repo/.github/skills/context-engineering/references/context-fundamentals.md +75 -0
  510. package/templates/repo/.github/skills/context-engineering/references/context-optimization.md +82 -0
  511. package/templates/repo/.github/skills/context-engineering/references/evaluation.md +89 -0
  512. package/templates/repo/.github/skills/context-engineering/references/memory-systems.md +88 -0
  513. package/templates/repo/.github/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  514. package/templates/repo/.github/skills/context-engineering/references/project-development.md +97 -0
  515. package/templates/repo/.github/skills/context-engineering/references/runtime-awareness.md +202 -0
  516. package/templates/repo/.github/skills/context-engineering/references/tool-design.md +86 -0
  517. package/templates/repo/.github/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  518. package/templates/repo/.github/skills/context-engineering/scripts/context_analyzer.py +317 -0
  519. package/templates/repo/.github/skills/cook/README.md +86 -0
  520. package/templates/repo/.github/skills/cook/SKILL.md +93 -0
  521. package/templates/repo/.github/skills/cook/references/agent-patterns.md +75 -0
  522. package/templates/repo/.github/skills/cook/references/intent-detection.md +101 -0
  523. package/templates/repo/.github/skills/cook/references/review-cycle.md +75 -0
  524. package/templates/repo/.github/skills/cook/references/workflow-steps.md +140 -0
  525. package/templates/repo/.github/skills/databases/SKILL.md +111 -0
  526. package/templates/repo/.github/skills/databases/analytics.md +198 -0
  527. package/templates/repo/.github/skills/databases/db-design.md +188 -0
  528. package/templates/repo/.github/skills/databases/incremental-etl.md +213 -0
  529. package/templates/repo/.github/skills/databases/references/mongodb-aggregation.md +447 -0
  530. package/templates/repo/.github/skills/databases/references/mongodb-atlas.md +465 -0
  531. package/templates/repo/.github/skills/databases/references/mongodb-crud.md +408 -0
  532. package/templates/repo/.github/skills/databases/references/mongodb-indexing.md +442 -0
  533. package/templates/repo/.github/skills/databases/references/postgresql-administration.md +594 -0
  534. package/templates/repo/.github/skills/databases/references/postgresql-performance.md +527 -0
  535. package/templates/repo/.github/skills/databases/references/postgresql-psql-cli.md +467 -0
  536. package/templates/repo/.github/skills/databases/references/postgresql-queries.md +475 -0
  537. package/templates/repo/.github/skills/databases/scripts/db_backup.py +502 -0
  538. package/templates/repo/.github/skills/databases/scripts/db_migrate.py +426 -0
  539. package/templates/repo/.github/skills/databases/scripts/db_performance_check.py +457 -0
  540. package/templates/repo/.github/skills/databases/scripts/requirements.txt +20 -0
  541. package/templates/repo/.github/skills/databases/stacks/bigquery.md +231 -0
  542. package/templates/repo/.github/skills/databases/stacks/d1_cloudflare.md +137 -0
  543. package/templates/repo/.github/skills/databases/stacks/mysql.md +216 -0
  544. package/templates/repo/.github/skills/databases/stacks/postgres.md +235 -0
  545. package/templates/repo/.github/skills/databases/stacks/sqlite.md +244 -0
  546. package/templates/repo/.github/skills/databases/transactional.md +176 -0
  547. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/SKILL.md +83 -82
  548. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/defense-in-depth.md +124 -124
  549. package/templates/repo/.github/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  550. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/systematic-debugging.md +102 -102
  551. package/templates/repo/.github/skills/{ck-debugging → debug}/references/verification.md +123 -123
  552. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.sh +63 -63
  553. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.test.md +102 -102
  554. package/templates/repo/.github/skills/devops/.env.example +76 -0
  555. package/templates/repo/.github/skills/devops/SKILL.md +102 -0
  556. package/templates/repo/.github/skills/devops/references/browser-rendering.md +305 -0
  557. package/templates/repo/.github/skills/devops/references/cloudflare-d1-kv.md +123 -0
  558. package/templates/repo/.github/skills/devops/references/cloudflare-platform.md +271 -0
  559. package/templates/repo/.github/skills/devops/references/cloudflare-r2-storage.md +280 -0
  560. package/templates/repo/.github/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  561. package/templates/repo/.github/skills/devops/references/cloudflare-workers-apis.md +309 -0
  562. package/templates/repo/.github/skills/devops/references/cloudflare-workers-basics.md +418 -0
  563. package/templates/repo/.github/skills/devops/references/docker-basics.md +297 -0
  564. package/templates/repo/.github/skills/devops/references/docker-compose.md +292 -0
  565. package/templates/repo/.github/skills/devops/references/gcloud-platform.md +297 -0
  566. package/templates/repo/.github/skills/devops/references/gcloud-services.md +304 -0
  567. package/templates/repo/.github/skills/devops/references/kubernetes-basics.md +99 -0
  568. package/templates/repo/.github/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  569. package/templates/repo/.github/skills/devops/references/kubernetes-helm.md +81 -0
  570. package/templates/repo/.github/skills/devops/references/kubernetes-kubectl.md +74 -0
  571. package/templates/repo/.github/skills/devops/references/kubernetes-security-advanced.md +98 -0
  572. package/templates/repo/.github/skills/devops/references/kubernetes-security.md +95 -0
  573. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  574. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  575. package/templates/repo/.github/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  576. package/templates/repo/.github/skills/devops/references/kubernetes-workflows.md +78 -0
  577. package/templates/repo/.github/skills/devops/scripts/cloudflare_deploy.py +269 -0
  578. package/templates/repo/.github/skills/devops/scripts/docker_optimize.py +332 -0
  579. package/templates/repo/.github/skills/devops/scripts/requirements.txt +20 -0
  580. package/templates/repo/.github/skills/docs-seeker/.env.example +15 -0
  581. package/templates/repo/.github/skills/docs-seeker/SKILL.md +96 -0
  582. package/templates/repo/.github/skills/docs-seeker/package.json +25 -0
  583. package/templates/repo/.github/skills/docs-seeker/references/advanced.md +79 -0
  584. package/templates/repo/.github/skills/docs-seeker/references/context7-patterns.md +64 -0
  585. package/templates/repo/.github/skills/docs-seeker/references/errors.md +68 -0
  586. package/templates/repo/.github/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  587. package/templates/repo/.github/skills/docs-seeker/scripts/detect-topic.js +172 -0
  588. package/templates/repo/.github/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  589. package/templates/repo/.github/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  590. package/templates/repo/.github/skills/docs-seeker/workflows/library-search.md +86 -0
  591. package/templates/repo/.github/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  592. package/templates/repo/.github/skills/docs-seeker/workflows/topic-search.md +77 -0
  593. package/templates/repo/.github/skills/fix/SKILL.md +100 -0
  594. package/templates/repo/.github/skills/fix/references/complexity-assessment.md +61 -0
  595. package/templates/repo/.github/skills/fix/references/mode-selection.md +30 -0
  596. package/templates/repo/.github/skills/fix/references/parallel-exploration.md +77 -0
  597. package/templates/repo/.github/skills/fix/references/review-cycle.md +77 -0
  598. package/templates/repo/.github/skills/fix/references/skill-activation-matrix.md +65 -0
  599. package/templates/repo/.github/skills/fix/references/workflow-ci.md +28 -0
  600. package/templates/repo/.github/skills/fix/references/workflow-deep.md +91 -0
  601. package/templates/repo/.github/skills/fix/references/workflow-logs.md +36 -0
  602. package/templates/repo/.github/skills/fix/references/workflow-quick.md +59 -0
  603. package/templates/repo/.github/skills/fix/references/workflow-standard.md +86 -0
  604. package/templates/repo/.github/skills/fix/references/workflow-test.md +36 -0
  605. package/templates/repo/.github/skills/fix/references/workflow-types.md +33 -0
  606. package/templates/repo/.github/skills/fix/references/workflow-ui.md +34 -0
  607. package/templates/repo/.github/skills/frontend-design/SKILL.md +74 -0
  608. package/templates/repo/.github/skills/frontend-design/references/analysis-best-practices.md +80 -0
  609. package/templates/repo/.github/skills/frontend-design/references/analysis-prompts.md +141 -0
  610. package/templates/repo/.github/skills/frontend-design/references/analysis-techniques.md +118 -0
  611. package/templates/repo/.github/skills/frontend-design/references/animejs.md +396 -0
  612. package/templates/repo/.github/skills/frontend-design/references/asset-generation.md +161 -0
  613. package/templates/repo/.github/skills/frontend-design/references/design-extraction-overview.md +71 -0
  614. package/templates/repo/.github/skills/frontend-design/references/extraction-best-practices.md +141 -0
  615. package/templates/repo/.github/skills/frontend-design/references/extraction-output-templates.md +162 -0
  616. package/templates/repo/.github/skills/frontend-design/references/extraction-prompts.md +127 -0
  617. package/templates/repo/.github/skills/frontend-design/references/technical-accessibility.md +119 -0
  618. package/templates/repo/.github/skills/frontend-design/references/technical-best-practices.md +97 -0
  619. package/templates/repo/.github/skills/frontend-design/references/technical-optimization.md +44 -0
  620. package/templates/repo/.github/skills/frontend-design/references/technical-overview.md +90 -0
  621. package/templates/repo/.github/skills/frontend-design/references/technical-workflows.md +150 -0
  622. package/templates/repo/.github/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  623. package/templates/repo/.github/skills/frontend-design/references/workflow-describe.md +86 -0
  624. package/templates/repo/.github/skills/frontend-design/references/workflow-quick.md +54 -0
  625. package/templates/repo/.github/skills/frontend-design/references/workflow-screenshot.md +62 -0
  626. package/templates/repo/.github/skills/git/SKILL.md +99 -0
  627. package/templates/repo/.github/skills/git/references/branch-management.md +88 -0
  628. package/templates/repo/.github/skills/git/references/commit-standards.md +46 -0
  629. package/templates/repo/.github/skills/git/references/gh-cli-guide.md +109 -0
  630. package/templates/repo/.github/skills/git/references/safety-protocols.md +69 -0
  631. package/templates/repo/.github/skills/git/references/workflow-commit.md +58 -0
  632. package/templates/repo/.github/skills/git/references/workflow-merge.md +48 -0
  633. package/templates/repo/.github/skills/git/references/workflow-pr.md +58 -0
  634. package/templates/repo/.github/skills/git/references/workflow-push.md +52 -0
  635. package/templates/repo/.github/skills/install.ps1 +1247 -0
  636. package/templates/repo/.github/skills/install.sh +1300 -0
  637. package/templates/repo/.github/skills/mcp-management/README.md +219 -0
  638. package/templates/repo/.github/skills/mcp-management/SKILL.md +209 -0
  639. package/templates/repo/.github/skills/mcp-management/assets/tools.json +3146 -0
  640. package/templates/repo/.github/skills/mcp-management/references/configuration.md +114 -0
  641. package/templates/repo/.github/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  642. package/templates/repo/.github/skills/mcp-management/references/mcp-protocol.md +116 -0
  643. package/templates/repo/.github/skills/mcp-management/scripts/.env.example +10 -0
  644. package/templates/repo/.github/skills/mcp-management/scripts/cli.ts +195 -0
  645. package/templates/repo/.github/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  646. package/templates/repo/.github/skills/mcp-management/scripts/dist/cli.js +160 -0
  647. package/templates/repo/.github/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  648. package/templates/repo/.github/skills/mcp-management/scripts/mcp-client.ts +230 -0
  649. package/templates/repo/.github/skills/mcp-management/scripts/package.json +20 -0
  650. package/templates/repo/.github/skills/mcp-management/scripts/tsconfig.json +15 -0
  651. package/templates/repo/.github/skills/mermaidjs-v11/SKILL.md +115 -0
  652. package/templates/repo/.github/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  653. package/templates/repo/.github/skills/mermaidjs-v11/references/configuration.md +232 -0
  654. package/templates/repo/.github/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  655. package/templates/repo/.github/skills/mermaidjs-v11/references/examples.md +344 -0
  656. package/templates/repo/.github/skills/mermaidjs-v11/references/integration.md +310 -0
  657. package/templates/repo/.github/skills/{ck-planning → planning}/SKILL.md +131 -112
  658. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/codebase-understanding.md +62 -62
  659. package/templates/repo/.github/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  660. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/plan-organization.md +160 -150
  661. package/templates/repo/.github/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  662. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/solution-design.md +63 -63
  663. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/SKILL.md +95 -95
  664. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/attribution.md +69 -69
  665. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  666. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/inversion-exercise.md +91 -91
  667. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  668. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  669. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  670. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/when-stuck.md +72 -72
  671. package/templates/repo/.github/skills/repomix/SKILL.md +247 -0
  672. package/templates/repo/.github/skills/repomix/references/configuration.md +211 -0
  673. package/templates/repo/.github/skills/repomix/references/usage-patterns.md +232 -0
  674. package/templates/repo/.github/skills/repomix/scripts/README.md +179 -0
  675. package/templates/repo/.github/skills/repomix/scripts/repomix_batch.py +455 -0
  676. package/templates/repo/.github/skills/repomix/scripts/repos.example.json +15 -0
  677. package/templates/repo/.github/skills/repomix/scripts/requirements.txt +15 -0
  678. package/templates/repo/.github/skills/research/SKILL.md +169 -0
  679. package/templates/repo/.github/skills/scout/SKILL.md +78 -0
  680. package/templates/repo/.github/skills/scout/references/external-scouting.md +140 -0
  681. package/templates/repo/.github/skills/scout/references/internal-scouting.md +119 -0
  682. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  683. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/README.md +183 -183
  684. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/SKILL.md +92 -92
  685. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  686. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  687. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  688. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/core-patterns.md +95 -95
  689. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  690. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  691. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  692. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  693. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/scripts/process-thought.js +236 -236
  694. package/templates/repo/.github/skills/ui-styling/LICENSE.txt +202 -0
  695. package/templates/repo/.github/skills/ui-styling/SKILL.md +319 -0
  696. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  697. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  698. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  699. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  700. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  701. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  702. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  703. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  704. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  705. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  706. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  707. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  708. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  709. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  710. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  711. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  712. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  713. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  714. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  715. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  716. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  717. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  718. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  719. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  720. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  721. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  722. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  723. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  724. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  725. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  726. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  727. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  728. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  729. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  730. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  731. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  732. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  733. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  734. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  735. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  736. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  737. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  738. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  739. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  740. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  741. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  742. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  743. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  744. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  745. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  746. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  747. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  748. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  749. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  750. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  751. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  752. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  753. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  754. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  755. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  756. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  757. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  758. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  759. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  760. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  761. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  762. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  763. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  764. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  765. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  766. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  767. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  768. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  769. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  770. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  771. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  772. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  773. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  774. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  775. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  776. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  777. package/templates/repo/.github/skills/ui-styling/references/canvas-design-system.md +320 -0
  778. package/templates/repo/.github/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  779. package/templates/repo/.github/skills/ui-styling/references/shadcn-components.md +424 -0
  780. package/templates/repo/.github/skills/ui-styling/references/shadcn-theming.md +373 -0
  781. package/templates/repo/.github/skills/ui-styling/references/tailwind-customization.md +483 -0
  782. package/templates/repo/.github/skills/ui-styling/references/tailwind-responsive.md +382 -0
  783. package/templates/repo/.github/skills/ui-styling/references/tailwind-utilities.md +455 -0
  784. package/templates/repo/.github/skills/ui-styling/scripts/requirements.txt +17 -0
  785. package/templates/repo/.github/skills/ui-styling/scripts/shadcn_add.py +292 -0
  786. package/templates/repo/.github/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  787. package/templates/repo/.github/skills/web-testing/SKILL.md +94 -0
  788. package/templates/repo/.github/skills/web-testing/references/accessibility-testing.md +84 -0
  789. package/templates/repo/.github/skills/web-testing/references/api-testing.md +78 -0
  790. package/templates/repo/.github/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  791. package/templates/repo/.github/skills/web-testing/references/component-testing.md +94 -0
  792. package/templates/repo/.github/skills/web-testing/references/contract-testing.md +146 -0
  793. package/templates/repo/.github/skills/web-testing/references/cross-browser-checklist.md +72 -0
  794. package/templates/repo/.github/skills/web-testing/references/database-testing.md +139 -0
  795. package/templates/repo/.github/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  796. package/templates/repo/.github/skills/web-testing/references/functional-testing-checklist.md +88 -0
  797. package/templates/repo/.github/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  798. package/templates/repo/.github/skills/web-testing/references/load-testing-k6.md +93 -0
  799. package/templates/repo/.github/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  800. package/templates/repo/.github/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  801. package/templates/repo/.github/skills/web-testing/references/playwright-component-testing.md +115 -0
  802. package/templates/repo/.github/skills/web-testing/references/pre-release-checklist.md +75 -0
  803. package/templates/repo/.github/skills/web-testing/references/security-checklists.md +81 -0
  804. package/templates/repo/.github/skills/web-testing/references/security-testing-overview.md +92 -0
  805. package/templates/repo/.github/skills/web-testing/references/shadow-dom-testing.md +70 -0
  806. package/templates/repo/.github/skills/web-testing/references/test-data-management.md +131 -0
  807. package/templates/repo/.github/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  808. package/templates/repo/.github/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  809. package/templates/repo/.github/skills/web-testing/references/unit-integration-testing.md +138 -0
  810. package/templates/repo/.github/skills/web-testing/references/visual-regression.md +92 -0
  811. package/templates/repo/.github/skills/web-testing/references/vulnerability-payloads.md +93 -0
  812. package/templates/repo/.github/skills/web-testing/scripts/analyze-test-results.js +280 -0
  813. package/templates/repo/.github/skills/web-testing/scripts/init-playwright.js +233 -0
  814. package/templates/repo/.github/spec-kit/memory/constitution.md +50 -0
  815. package/templates/repo/.github/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
  816. package/templates/repo/.github/spec-kit/scripts/bash/common.sh +156 -0
  817. package/templates/repo/.github/spec-kit/scripts/bash/create-new-feature.sh +297 -0
  818. package/templates/repo/.github/spec-kit/scripts/bash/setup-plan.sh +61 -0
  819. package/templates/repo/.github/spec-kit/scripts/bash/update-agent-context.sh +799 -0
  820. package/templates/repo/.github/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
  821. package/templates/repo/.github/spec-kit/scripts/powershell/common.ps1 +137 -0
  822. package/templates/repo/.github/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
  823. package/templates/repo/.github/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
  824. package/templates/repo/.github/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
  825. package/templates/repo/.github/spec-kit/templates/agent-file-template.md +28 -0
  826. package/templates/repo/.github/spec-kit/templates/checklist-template.md +40 -0
  827. package/templates/repo/.github/spec-kit/templates/commands/analyze.md +187 -0
  828. package/templates/repo/.github/spec-kit/templates/commands/checklist.md +297 -0
  829. package/templates/repo/.github/spec-kit/templates/commands/clarify.md +184 -0
  830. package/templates/repo/.github/spec-kit/templates/commands/constitution.md +82 -0
  831. package/templates/repo/.github/spec-kit/templates/commands/implement.md +138 -0
  832. package/templates/repo/.github/spec-kit/templates/commands/plan.md +95 -0
  833. package/templates/repo/.github/spec-kit/templates/commands/specify.md +261 -0
  834. package/templates/repo/.github/spec-kit/templates/commands/tasks.md +140 -0
  835. package/templates/repo/.github/spec-kit/templates/commands/taskstoissues.md +33 -0
  836. package/templates/repo/.github/spec-kit/templates/plan-template.md +104 -0
  837. package/templates/repo/.github/spec-kit/templates/spec-template.md +115 -0
  838. package/templates/repo/.github/spec-kit/templates/tasks-phase-template.md +42 -0
  839. package/templates/repo/.github/spec-kit/templates/tasks-template.md +268 -0
  840. package/templates/repo/.github/spec-kit/templates/vscode-settings.json +14 -0
  841. package/templates/repo/.vscode/settings.json +70 -70
  842. package/.vscode/settings.json +0 -70
  843. package/AGENTS.md +0 -103
  844. package/FAQ.md +0 -101
  845. package/INIT.md +0 -154
  846. package/QUICK-START.md +0 -37
  847. package/changelogs/1.0.8.md +0 -77
  848. package/changelogs/1.0.9.md +0 -173
  849. package/plans/reports/docs-manager-260120-0854-documentation-update.md +0 -323
  850. package/prompts/ck-code.prompt.md +0 -178
  851. package/repomix-output.xml +0 -40725
  852. package/rules/README.agents.md +0 -55
  853. package/rules/README.collections.md +0 -78
  854. package/rules/README.copilot-instructions.md +0 -66
  855. package/rules/README.instructions.md +0 -73
  856. package/rules/README.md +0 -39
  857. package/rules/README.prompts.md +0 -76
  858. package/rules/README.skills.md +0 -71
  859. package/skills/ck-frontend-development/SKILL.md +0 -399
  860. package/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  861. package/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  862. package/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  863. package/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  864. package/skills/ck-frontend-development/resources/file-organization.md +0 -502
  865. package/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  866. package/skills/ck-frontend-development/resources/performance.md +0 -406
  867. package/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  868. package/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  869. package/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  870. package/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  871. package/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  872. package/templates/repo/.github/.cokit-version +0 -4
  873. package/templates/repo/.github/copilot-instructions.md +0 -45
  874. package/templates/repo/.github/prompts/ck-code.prompt.md +0 -178
  875. package/templates/repo/.github/skills/ck-frontend-development/SKILL.md +0 -399
  876. package/templates/repo/.github/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  877. package/templates/repo/.github/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  878. package/templates/repo/.github/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  879. package/templates/repo/.github/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  880. package/templates/repo/.github/skills/ck-frontend-development/resources/file-organization.md +0 -502
  881. package/templates/repo/.github/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  882. package/templates/repo/.github/skills/ck-frontend-development/resources/performance.md +0 -406
  883. package/templates/repo/.github/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  884. package/templates/repo/.github/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  885. package/templates/repo/.github/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  886. package/templates/repo/.github/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  887. package/templates/repo/.github/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  888. /package/skills/{ck-code-review → code-review}/references/verification-before-completion.md +0 -0
@@ -1,561 +1,484 @@
1
- # Backend Testing Strategies
2
-
3
- Comprehensive testing approaches, frameworks, and quality assurance practices (2025).
4
-
5
- ## Test Pyramid (70-20-10 Rule)
6
-
7
- ```
8
- /\
9
- /E2E\ 10% - End-to-End Tests
10
- /------\
11
- /Integr.\ 20% - Integration Tests
12
- /----------\
13
- / Unit \ 70% - Unit Tests
14
- /--------------\
15
- ```
16
-
17
- **Rationale:**
18
- - Unit tests: Fast, cheap, isolate bugs quickly
19
- - Integration tests: Verify component interactions
20
- - E2E tests: Expensive, slow, but validate real user flows
21
-
22
- ## Unit Testing
23
-
24
- ### Frameworks by Language
25
-
26
- **C#/.NET:**
27
- - **xUnit** - Modern, extensible, recommended for new .NET projects
28
- - **NUnit** - Mature, feature-rich, widely adopted
29
- - **MSTest** - Microsoft's built-in framework
30
- - **Moq/NSubstitute** - Mocking frameworks
31
- - **FluentAssertions** - Readable assertion syntax
32
- - **Bogus** - Fake data generation
33
- - **WebApplicationFactory** - Integration testing for ASP.NET Core
34
-
35
- **TypeScript/JavaScript:**
36
- - **Vitest** - 50% faster than Jest in CI/CD, ESM native
37
- - **Jest** - Mature, large ecosystem, snapshot testing
38
-
39
- **Python:**
40
- - **Pytest** - Industry standard, fixtures, parametrization
41
- - **Unittest** - Built-in, standard library
42
-
43
- **Go:**
44
- - **testing** - Built-in, table-driven tests
45
- - **testify** - Assertions and mocking
46
-
47
- ### Best Practices
48
-
49
- ```typescript
50
- // Good: Test single responsibility
51
- describe('UserService', () => {
52
- describe('createUser', () => {
53
- it('should create user with valid data', async () => {
54
- const userData = { email: 'test@example.com', name: 'Test' };
55
- const user = await userService.createUser(userData);
56
-
57
- expect(user).toMatchObject(userData);
58
- expect(user.id).toBeDefined();
59
- });
60
-
61
- it('should throw error with duplicate email', async () => {
62
- const userData = { email: 'existing@example.com', name: 'Test' };
63
-
64
- await expect(userService.createUser(userData))
65
- .rejects.toThrow('Email already exists');
66
- });
67
-
68
- it('should hash password before storing', async () => {
69
- const userData = { email: 'test@example.com', password: 'plain123' };
70
- const user = await userService.createUser(userData);
71
-
72
- expect(user.password).not.toBe('plain123');
73
- expect(user.password).toMatch(/^\$argon2id\$/);
74
- });
75
- });
76
- });
77
- ```
78
-
79
- ### Mocking
80
-
81
- ```typescript
82
- // Mock external dependencies
83
- jest.mock('./emailService');
84
-
85
- it('should send welcome email after user creation', async () => {
86
- const emailService = require('./emailService');
87
- emailService.sendWelcomeEmail = jest.fn();
88
-
89
- await userService.createUser({ email: 'test@example.com' });
90
-
91
- expect(emailService.sendWelcomeEmail).toHaveBeenCalledWith('test@example.com');
92
- });
93
- ```
94
-
95
- ### .NET Unit Test Example (xUnit + Moq + FluentAssertions)
96
-
97
- ```csharp
98
- public class UserServiceTests
99
- {
100
- private readonly Mock<IUserRepository> _userRepoMock;
101
- private readonly Mock<IEmailService> _emailServiceMock;
102
- private readonly UserService _sut;
103
-
104
- public UserServiceTests()
105
- {
106
- _userRepoMock = new Mock<IUserRepository>();
107
- _emailServiceMock = new Mock<IEmailService>();
108
- _sut = new UserService(_userRepoMock.Object, _emailServiceMock.Object);
109
- }
110
-
111
- [Fact]
112
- public async Task CreateUser_WithValidData_ReturnsCreatedUser()
113
- {
114
- // Arrange
115
- var userData = new CreateUserDto { Email = "test@example.com", Name = "Test" };
116
- _userRepoMock.Setup(x => x.CreateAsync(It.IsAny<User>()))
117
- .ReturnsAsync(new User { Id = 1, Email = userData.Email, Name = userData.Name });
118
-
119
- // Act
120
- var result = await _sut.CreateUserAsync(userData);
121
-
122
- // Assert
123
- result.Should().NotBeNull();
124
- result.Email.Should().Be("test@example.com");
125
- result.Id.Should().BeGreaterThan(0);
126
- }
127
-
128
- [Fact]
129
- public async Task CreateUser_WithDuplicateEmail_ThrowsException()
130
- {
131
- // Arrange
132
- var userData = new CreateUserDto { Email = "existing@example.com" };
133
- _userRepoMock.Setup(x => x.ExistsAsync(userData.Email)).ReturnsAsync(true);
134
-
135
- // Act & Assert
136
- await _sut.Invoking(x => x.CreateUserAsync(userData))
137
- .Should().ThrowAsync<DuplicateEmailException>()
138
- .WithMessage("*already exists*");
139
- }
140
-
141
- [Theory]
142
- [InlineData("")]
143
- [InlineData(null)]
144
- [InlineData("invalid-email")]
145
- public async Task CreateUser_WithInvalidEmail_ThrowsValidationException(string email)
146
- {
147
- // Arrange
148
- var userData = new CreateUserDto { Email = email };
149
-
150
- // Act & Assert
151
- await _sut.Invoking(x => x.CreateUserAsync(userData))
152
- .Should().ThrowAsync<ValidationException>();
153
- }
154
- }
155
- ```
156
-
157
- ## Integration Testing
158
-
159
- ### API Integration Tests
160
-
161
- ```typescript
162
- import request from 'supertest';
163
- import { app } from '../app';
164
-
165
- describe('POST /api/users', () => {
166
- beforeAll(async () => {
167
- await db.connect(); // Real database connection (test DB)
168
- });
169
-
170
- afterAll(async () => {
171
- await db.disconnect();
172
- });
173
-
174
- beforeEach(async () => {
175
- await db.users.deleteMany({}); // Clean state
176
- });
177
-
178
- it('should create user and return 201', async () => {
179
- const response = await request(app)
180
- .post('/api/users')
181
- .send({ email: 'test@example.com', name: 'Test User' })
182
- .expect(201);
183
-
184
- expect(response.body).toMatchObject({
185
- email: 'test@example.com',
186
- name: 'Test User',
187
- });
188
-
189
- // Verify database persistence
190
- const user = await db.users.findOne({ email: 'test@example.com' });
191
- expect(user).toBeDefined();
192
- });
193
-
194
- it('should return 400 for invalid email', async () => {
195
- await request(app)
196
- .post('/api/users')
197
- .send({ email: 'invalid-email', name: 'Test' })
198
- .expect(400)
199
- .expect((res) => {
200
- expect(res.body.error).toBe('Invalid email format');
201
- });
202
- });
203
- });
204
- ```
205
-
206
- ### Database Testing with TestContainers
207
-
208
- ```typescript
209
- import { GenericContainer } from 'testcontainers';
210
-
211
- let container;
212
- let db;
213
-
214
- beforeAll(async () => {
215
- // Spin up real PostgreSQL in Docker
216
- container = await new GenericContainer('postgres:15')
217
- .withEnvironment({ POSTGRES_PASSWORD: 'test' })
218
- .withExposedPorts(5432)
219
- .start();
220
-
221
- const port = container.getMappedPort(5432);
222
- db = await createConnection({
223
- host: 'localhost',
224
- port,
225
- database: 'test',
226
- password: 'test',
227
- });
228
- }, 60000);
229
-
230
- afterAll(async () => {
231
- await container.stop();
232
- });
233
- ```
234
-
235
- ### .NET Integration Testing (WebApplicationFactory)
236
-
237
- ```csharp
238
- public class UsersControllerTests : IClassFixture<WebApplicationFactory<Program>>
239
- {
240
- private readonly HttpClient _client;
241
- private readonly WebApplicationFactory<Program> _factory;
242
-
243
- public UsersControllerTests(WebApplicationFactory<Program> factory)
244
- {
245
- _factory = factory.WithWebHostBuilder(builder =>
246
- {
247
- builder.ConfigureServices(services =>
248
- {
249
- // Replace real DB with in-memory for testing
250
- services.RemoveAll<DbContextOptions<AppDbContext>>();
251
- services.AddDbContext<AppDbContext>(options =>
252
- options.UseInMemoryDatabase("TestDb"));
253
- });
254
- });
255
- _client = _factory.CreateClient();
256
- }
257
-
258
- [Fact]
259
- public async Task CreateUser_ReturnsCreated()
260
- {
261
- // Arrange
262
- var request = new { Email = "test@example.com", Name = "Test User" };
263
-
264
- // Act
265
- var response = await _client.PostAsJsonAsync("/api/users", request);
266
-
267
- // Assert
268
- response.StatusCode.Should().Be(HttpStatusCode.Created);
269
- var user = await response.Content.ReadFromJsonAsync<UserDto>();
270
- user.Should().NotBeNull();
271
- user!.Email.Should().Be("test@example.com");
272
- }
273
-
274
- [Fact]
275
- public async Task CreateUser_WithInvalidEmail_ReturnsBadRequest()
276
- {
277
- // Arrange
278
- var request = new { Email = "invalid-email", Name = "Test" };
279
-
280
- // Act
281
- var response = await _client.PostAsJsonAsync("/api/users", request);
282
-
283
- // Assert
284
- response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
285
- }
286
- }
287
- ```
288
-
289
- ## Contract Testing (Microservices)
290
-
291
- ### Pact (Consumer-Driven Contracts)
292
-
293
- ```typescript
294
- // Consumer test
295
- import { Pact } from '@pact-foundation/pact';
296
-
297
- const provider = new Pact({
298
- consumer: 'UserService',
299
- provider: 'AuthService',
300
- });
301
-
302
- describe('Auth Service Contract', () => {
303
- beforeAll(() => provider.setup());
304
- afterEach(() => provider.verify());
305
- afterAll(() => provider.finalize());
306
-
307
- it('should validate user token', async () => {
308
- await provider.addInteraction({
309
- state: 'user token exists',
310
- uponReceiving: 'a request to validate token',
311
- withRequest: {
312
- method: 'POST',
313
- path: '/auth/validate',
314
- headers: { 'Content-Type': 'application/json' },
315
- body: { token: 'valid-token-123' },
316
- },
317
- willRespondWith: {
318
- status: 200,
319
- body: { valid: true, userId: '123' },
320
- },
321
- });
322
-
323
- const response = await authClient.validateToken('valid-token-123');
324
- expect(response.valid).toBe(true);
325
- });
326
- });
327
- ```
328
-
329
- ## Load Testing
330
-
331
- ### Tools Comparison
332
-
333
- **k6** (Modern, Developer-Friendly)
334
- ```javascript
335
- import http from 'k6/http';
336
- import { check, sleep } from 'k6';
337
-
338
- export const options = {
339
- stages: [
340
- { duration: '2m', target: 100 }, // Ramp up to 100 users
341
- { duration: '5m', target: 100 }, // Stay at 100 users
342
- { duration: '2m', target: 0 }, // Ramp down to 0 users
343
- ],
344
- thresholds: {
345
- http_req_duration: ['p(95)<500'], // 95% requests under 500ms
346
- },
347
- };
348
-
349
- export default function () {
350
- const res = http.get('https://api.example.com/users');
351
- check(res, {
352
- 'status is 200': (r) => r.status === 200,
353
- 'response time < 500ms': (r) => r.timings.duration < 500,
354
- });
355
- sleep(1);
356
- }
357
- ```
358
-
359
- **Gatling** (JVM-based, Advanced Scenarios)
360
- **JMeter** (GUI-based, Traditional)
361
-
362
- ### Performance Thresholds
363
-
364
- - **Response time:** p95 < 500ms, p99 < 1s
365
- - **Throughput:** 1000+ req/sec (target based on SLA)
366
- - **Error rate:** < 1%
367
- - **Concurrent users:** Test at 2x expected peak
368
-
369
- ## E2E Testing
370
-
371
- ### Playwright (Modern, Multi-Browser)
372
-
373
- ```typescript
374
- import { test, expect } from '@playwright/test';
375
-
376
- test('user can register and login', async ({ page }) => {
377
- // Navigate to registration page
378
- await page.goto('https://app.example.com/register');
379
-
380
- // Fill registration form
381
- await page.fill('input[name="email"]', 'test@example.com');
382
- await page.fill('input[name="password"]', 'SecurePass123!');
383
- await page.click('button[type="submit"]');
384
-
385
- // Verify redirect to dashboard
386
- await expect(page).toHaveURL('/dashboard');
387
- await expect(page.locator('h1')).toContainText('Welcome');
388
-
389
- // Verify API call was made
390
- const response = await page.waitForResponse('/api/users');
391
- expect(response.status()).toBe(201);
392
- });
393
- ```
394
-
395
- ## Database Migration Testing
396
-
397
- **Critical:** 83% migrations fail without proper testing
398
-
399
- ```typescript
400
- describe('Database Migrations', () => {
401
- it('should migrate from v1 to v2 without data loss', async () => {
402
- // Insert test data in v1 schema
403
- await db.query(`
404
- INSERT INTO users (id, email, name)
405
- VALUES (1, 'test@example.com', 'Test User')
406
- `);
407
-
408
- // Run migration
409
- await runMigration('v2-add-created-at.sql');
410
-
411
- // Verify v2 schema
412
- const result = await db.query('SELECT * FROM users WHERE id = 1');
413
- expect(result.rows[0]).toMatchObject({
414
- id: 1,
415
- email: 'test@example.com',
416
- name: 'Test User',
417
- created_at: expect.any(Date),
418
- });
419
- });
420
-
421
- it('should rollback migration successfully', async () => {
422
- await runMigration('v2-add-created-at.sql');
423
- await rollbackMigration('v2-add-created-at.sql');
424
-
425
- // Verify v1 schema restored
426
- const columns = await db.query(`
427
- SELECT column_name FROM information_schema.columns
428
- WHERE table_name = 'users'
429
- `);
430
- expect(columns.rows.map(r => r.column_name)).not.toContain('created_at');
431
- });
432
- });
433
- ```
434
-
435
- ## Security Testing
436
-
437
- ### SAST (Static Application Security Testing)
438
-
439
- ```bash
440
- # SonarQube for code quality + security
441
- sonar-scanner \
442
- -Dsonar.projectKey=my-backend \
443
- -Dsonar.sources=src \
444
- -Dsonar.host.url=http://localhost:9000
445
-
446
- # Semgrep for security patterns
447
- semgrep --config auto src/
448
- ```
449
-
450
- ### DAST (Dynamic Application Security Testing)
451
-
452
- ```bash
453
- # OWASP ZAP for runtime security scanning
454
- docker run -t owasp/zap2docker-stable zap-baseline.py \
455
- -t https://api.example.com \
456
- -r zap-report.html
457
- ```
458
-
459
- ### Dependency Scanning (SCA)
460
-
461
- ```bash
462
- # npm audit for Node.js
463
- npm audit fix
464
-
465
- # Snyk for multi-language
466
- snyk test
467
- snyk monitor # Continuous monitoring
468
- ```
469
-
470
- ## Code Coverage
471
-
472
- ### Target Metrics (SonarQube Standards)
473
-
474
- - **Overall coverage:** 80%+
475
- - **Critical paths:** 100% (authentication, payment, data integrity)
476
- - **New code:** 90%+
477
-
478
- ### Implementation
479
-
480
- ```bash
481
- # .NET with coverage (Coverlet)
482
- dotnet test --collect:"XPlat Code Coverage"
483
- dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
484
-
485
- # Vitest with coverage
486
- vitest run --coverage
487
-
488
- # Jest with coverage
489
- jest --coverage --coverageThreshold='{"global":{"branches":80,"functions":80,"lines":80}}'
490
- ```
491
-
492
- ## CI/CD Testing Pipeline
493
-
494
- ```yaml
495
- # GitHub Actions example
496
- name: Test Pipeline
497
-
498
- on: [push, pull_request]
499
-
500
- jobs:
501
- test:
502
- runs-on: ubuntu-latest
503
- steps:
504
- - uses: actions/checkout@v3
505
-
506
- - name: Unit Tests
507
- run: npm run test:unit
508
-
509
- - name: Integration Tests
510
- run: npm run test:integration
511
-
512
- - name: E2E Tests
513
- run: npm run test:e2e
514
-
515
- - name: Load Tests
516
- run: k6 run load-test.js
517
-
518
- - name: Security Scan
519
- run: npm audit && snyk test
520
-
521
- - name: Coverage Report
522
- run: npm run test:coverage
523
-
524
- - name: Upload to Codecov
525
- uses: codecov/codecov-action@v3
526
- ```
527
-
528
- ## Testing Best Practices
529
-
530
- 1. **Arrange-Act-Assert (AAA) Pattern**
531
- 2. **One assertion per test** (when practical)
532
- 3. **Descriptive test names** - `should throw error when email is invalid`
533
- 4. **Test edge cases** - Empty inputs, boundary values, null/undefined
534
- 5. **Clean test data** - Reset database state between tests
535
- 6. **Fast tests** - Unit tests < 10ms, Integration < 100ms
536
- 7. **Deterministic** - No flaky tests, avoid sleep(), use waitFor()
537
- 8. **Independent** - Tests don't depend on execution order
538
-
539
- ## Testing Checklist
540
-
541
- - [ ] Unit tests cover 70% of codebase
542
- - [ ] Integration tests for all API endpoints
543
- - [ ] Contract tests for microservices
544
- - [ ] Load tests configured (k6/Gatling)
545
- - [ ] E2E tests for critical user flows
546
- - [ ] Database migration tests
547
- - [ ] Security scanning in CI/CD (SAST, DAST, SCA)
548
- - [ ] Code coverage reports automated
549
- - [ ] Tests run on every PR
550
- - [ ] Flaky tests eliminated
551
-
552
- ## Resources
553
-
554
- - **xUnit:** https://xunit.net/
555
- - **NUnit:** https://nunit.org/
556
- - **FluentAssertions:** https://fluentassertions.com/
557
- - **Vitest:** https://vitest.dev/
558
- - **Playwright:** https://playwright.dev/
559
- - **k6:** https://k6.io/docs/
560
- - **Pact:** https://docs.pact.io/
561
- - **TestContainers:** https://testcontainers.com/
1
+ # Backend Testing Strategies
2
+
3
+ Comprehensive testing approaches, frameworks, and quality assurance practices (2025).
4
+
5
+ ## Test Pyramid (70-20-10 Rule)
6
+
7
+ ```
8
+ /\
9
+ /E2E\ 10% - End-to-End Tests
10
+ /------\
11
+ /Integr.\ 20% - Integration Tests
12
+ /----------\
13
+ / Unit \ 70% - Unit Tests
14
+ /--------------\
15
+ ```
16
+
17
+ **Rationale:**
18
+ - Unit tests: Fast, cheap, isolate bugs quickly
19
+ - Integration tests: Verify component interactions
20
+ - E2E tests: Expensive, slow, but validate real user flows
21
+
22
+ ## Unit Testing
23
+
24
+ ### Frameworks by Language
25
+
26
+ **C#/.NET:**
27
+ - **xUnit** - Modern, extensible, .NET recommended, best parallel execution
28
+ - **NUnit** - Mature, attribute-based, rich assertions, data-driven testing
29
+ - **MSTest** - Microsoft's official, Visual Studio integrated
30
+ - **Moq** - Mocking library for dependency injection
31
+
32
+ **TypeScript/JavaScript:**
33
+ - **Vitest** - 50% faster than Jest in CI/CD, ESM native
34
+ - **Jest** - Mature, large ecosystem, snapshot testing
35
+
36
+ **Python:**
37
+ - **Pytest** - Industry standard, fixtures, parametrization
38
+ - **Unittest** - Built-in, standard library
39
+
40
+ **Go:**
41
+ - **testing** - Built-in, table-driven tests
42
+ - **testify** - Assertions and mocking
43
+
44
+ ### Best Practices
45
+
46
+ ```typescript
47
+ // Good: Test single responsibility
48
+ describe('UserService', () => {
49
+ describe('createUser', () => {
50
+ it('should create user with valid data', async () => {
51
+ const userData = { email: 'test@example.com', name: 'Test' };
52
+ const user = await userService.createUser(userData);
53
+
54
+ expect(user).toMatchObject(userData);
55
+ expect(user.id).toBeDefined();
56
+ });
57
+
58
+ it('should throw error with duplicate email', async () => {
59
+ const userData = { email: 'existing@example.com', name: 'Test' };
60
+
61
+ await expect(userService.createUser(userData))
62
+ .rejects.toThrow('Email already exists');
63
+ });
64
+
65
+ it('should hash password before storing', async () => {
66
+ const userData = { email: 'test@example.com', password: 'plain123' };
67
+ const user = await userService.createUser(userData);
68
+
69
+ expect(user.password).not.toBe('plain123');
70
+ expect(user.password).toMatch(/^\$argon2id\$/);
71
+ });
72
+ });
73
+ });
74
+ ```
75
+
76
+ ### Mocking
77
+
78
+ ```typescript
79
+ // Mock external dependencies
80
+ jest.mock('./emailService');
81
+
82
+ it('should send welcome email after user creation', async () => {
83
+ const emailService = require('./emailService');
84
+ emailService.sendWelcomeEmail = jest.fn();
85
+
86
+ await userService.createUser({ email: 'test@example.com' });
87
+
88
+ expect(emailService.sendWelcomeEmail).toHaveBeenCalledWith('test@example.com');
89
+ });
90
+ ```
91
+
92
+ ## Integration Testing
93
+
94
+ ### API Integration Tests
95
+
96
+ ```typescript
97
+ import request from 'supertest';
98
+ import { app } from '../app';
99
+
100
+ describe('POST /api/users', () => {
101
+ beforeAll(async () => {
102
+ await db.connect(); // Real database connection (test DB)
103
+ });
104
+
105
+ afterAll(async () => {
106
+ await db.disconnect();
107
+ });
108
+
109
+ beforeEach(async () => {
110
+ await db.users.deleteMany({}); // Clean state
111
+ });
112
+
113
+ it('should create user and return 201', async () => {
114
+ const response = await request(app)
115
+ .post('/api/users')
116
+ .send({ email: 'test@example.com', name: 'Test User' })
117
+ .expect(201);
118
+
119
+ expect(response.body).toMatchObject({
120
+ email: 'test@example.com',
121
+ name: 'Test User',
122
+ });
123
+
124
+ // Verify database persistence
125
+ const user = await db.users.findOne({ email: 'test@example.com' });
126
+ expect(user).toBeDefined();
127
+ });
128
+
129
+ it('should return 400 for invalid email', async () => {
130
+ await request(app)
131
+ .post('/api/users')
132
+ .send({ email: 'invalid-email', name: 'Test' })
133
+ .expect(400)
134
+ .expect((res) => {
135
+ expect(res.body.error).toBe('Invalid email format');
136
+ });
137
+ });
138
+ });
139
+ ```
140
+
141
+ ### API Integration Tests (ASP.NET Core)
142
+
143
+ ```csharp
144
+ public class UsersControllerTests : IClassFixture<WebApplicationFactory<Program>>
145
+ {
146
+ private readonly WebApplicationFactory<Program> _factory;
147
+ private readonly HttpClient _client;
148
+
149
+ public UsersControllerTests(WebApplicationFactory<Program> factory)
150
+ {
151
+ _factory = factory;
152
+ _client = factory.CreateClient();
153
+ }
154
+
155
+ [Fact]
156
+ public async Task CreateUser_WithValidData_Returns201()
157
+ {
158
+ // Arrange
159
+ var userData = new { Email = "test@example.com", Name = "Test User" };
160
+ var content = new StringContent(
161
+ JsonSerializer.Serialize(userData),
162
+ Encoding.UTF8,
163
+ "application/json");
164
+
165
+ // Act
166
+ var response = await _client.PostAsync("/api/users", content);
167
+
168
+ // Assert
169
+ Assert.Equal(HttpStatusCode.Created, response.StatusCode);
170
+ var user = await response.Content.ReadFromJsonAsync<UserDto>();
171
+ Assert.Equal("test@example.com", user?.Email);
172
+ }
173
+
174
+ [Fact]
175
+ public async Task CreateUser_WithInvalidEmail_Returns400()
176
+ {
177
+ var userData = new { Email = "invalid-email", Name = "Test" };
178
+ var content = new StringContent(
179
+ JsonSerializer.Serialize(userData),
180
+ Encoding.UTF8,
181
+ "application/json");
182
+
183
+ var response = await _client.PostAsync("/api/users", content);
184
+
185
+ Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
186
+ }
187
+ }
188
+ ```
189
+
190
+ ### Database Testing with TestContainers
191
+
192
+ ```typescript
193
+ import { GenericContainer } from 'testcontainers';
194
+
195
+ let container;
196
+ let db;
197
+
198
+ beforeAll(async () => {
199
+ // Spin up real PostgreSQL in Docker
200
+ container = await new GenericContainer('postgres:15')
201
+ .withEnvironment({ POSTGRES_PASSWORD: 'test' })
202
+ .withExposedPorts(5432)
203
+ .start();
204
+
205
+ const port = container.getMappedPort(5432);
206
+ db = await createConnection({
207
+ host: 'localhost',
208
+ port,
209
+ database: 'test',
210
+ password: 'test',
211
+ });
212
+ }, 60000);
213
+
214
+ afterAll(async () => {
215
+ await container.stop();
216
+ });
217
+ ```
218
+
219
+ ## Contract Testing (Microservices)
220
+
221
+ ### Pact (Consumer-Driven Contracts)
222
+
223
+ ```typescript
224
+ // Consumer test
225
+ import { Pact } from '@pact-foundation/pact';
226
+
227
+ const provider = new Pact({
228
+ consumer: 'UserService',
229
+ provider: 'AuthService',
230
+ });
231
+
232
+ describe('Auth Service Contract', () => {
233
+ beforeAll(() => provider.setup());
234
+ afterEach(() => provider.verify());
235
+ afterAll(() => provider.finalize());
236
+
237
+ it('should validate user token', async () => {
238
+ await provider.addInteraction({
239
+ state: 'user token exists',
240
+ uponReceiving: 'a request to validate token',
241
+ withRequest: {
242
+ method: 'POST',
243
+ path: '/auth/validate',
244
+ headers: { 'Content-Type': 'application/json' },
245
+ body: { token: 'valid-token-123' },
246
+ },
247
+ willRespondWith: {
248
+ status: 200,
249
+ body: { valid: true, userId: '123' },
250
+ },
251
+ });
252
+
253
+ const response = await authClient.validateToken('valid-token-123');
254
+ expect(response.valid).toBe(true);
255
+ });
256
+ });
257
+ ```
258
+
259
+ ## Load Testing
260
+
261
+ ### Tools Comparison
262
+
263
+ **k6** (Modern, Developer-Friendly)
264
+ ```javascript
265
+ import http from 'k6/http';
266
+ import { check, sleep } from 'k6';
267
+
268
+ export const options = {
269
+ stages: [
270
+ { duration: '2m', target: 100 }, // Ramp up to 100 users
271
+ { duration: '5m', target: 100 }, // Stay at 100 users
272
+ { duration: '2m', target: 0 }, // Ramp down to 0 users
273
+ ],
274
+ thresholds: {
275
+ http_req_duration: ['p(95)<500'], // 95% requests under 500ms
276
+ },
277
+ };
278
+
279
+ export default function () {
280
+ const res = http.get('https://api.example.com/users');
281
+ check(res, {
282
+ 'status is 200': (r) => r.status === 200,
283
+ 'response time < 500ms': (r) => r.timings.duration < 500,
284
+ });
285
+ sleep(1);
286
+ }
287
+ ```
288
+
289
+ **Gatling** (JVM-based, Advanced Scenarios)
290
+ **JMeter** (GUI-based, Traditional)
291
+
292
+ ### Performance Thresholds
293
+
294
+ - **Response time:** p95 < 500ms, p99 < 1s
295
+ - **Throughput:** 1000+ req/sec (target based on SLA)
296
+ - **Error rate:** < 1%
297
+ - **Concurrent users:** Test at 2x expected peak
298
+
299
+ ## E2E Testing
300
+
301
+ ### Playwright (Modern, Multi-Browser)
302
+
303
+ ```typescript
304
+ import { test, expect } from '@playwright/test';
305
+
306
+ test('user can register and login', async ({ page }) => {
307
+ // Navigate to registration page
308
+ await page.goto('https://app.example.com/register');
309
+
310
+ // Fill registration form
311
+ await page.fill('input[name="email"]', 'test@example.com');
312
+ await page.fill('input[name="password"]', 'SecurePass123!');
313
+ await page.click('button[type="submit"]');
314
+
315
+ // Verify redirect to dashboard
316
+ await expect(page).toHaveURL('/dashboard');
317
+ await expect(page.locator('h1')).toContainText('Welcome');
318
+
319
+ // Verify API call was made
320
+ const response = await page.waitForResponse('/api/users');
321
+ expect(response.status()).toBe(201);
322
+ });
323
+ ```
324
+
325
+ ## Database Migration Testing
326
+
327
+ **Critical:** 83% migrations fail without proper testing
328
+
329
+ ```typescript
330
+ describe('Database Migrations', () => {
331
+ it('should migrate from v1 to v2 without data loss', async () => {
332
+ // Insert test data in v1 schema
333
+ await db.query(`
334
+ INSERT INTO users (id, email, name)
335
+ VALUES (1, 'test@example.com', 'Test User')
336
+ `);
337
+
338
+ // Run migration
339
+ await runMigration('v2-add-created-at.sql');
340
+
341
+ // Verify v2 schema
342
+ const result = await db.query('SELECT * FROM users WHERE id = 1');
343
+ expect(result.rows[0]).toMatchObject({
344
+ id: 1,
345
+ email: 'test@example.com',
346
+ name: 'Test User',
347
+ created_at: expect.any(Date),
348
+ });
349
+ });
350
+
351
+ it('should rollback migration successfully', async () => {
352
+ await runMigration('v2-add-created-at.sql');
353
+ await rollbackMigration('v2-add-created-at.sql');
354
+
355
+ // Verify v1 schema restored
356
+ const columns = await db.query(`
357
+ SELECT column_name FROM information_schema.columns
358
+ WHERE table_name = 'users'
359
+ `);
360
+ expect(columns.rows.map(r => r.column_name)).not.toContain('created_at');
361
+ });
362
+ });
363
+ ```
364
+
365
+ ## Security Testing
366
+
367
+ ### SAST (Static Application Security Testing)
368
+
369
+ ```bash
370
+ # SonarQube for code quality + security
371
+ sonar-scanner \
372
+ -Dsonar.projectKey=my-backend \
373
+ -Dsonar.sources=src \
374
+ -Dsonar.host.url=http://localhost:9000
375
+
376
+ # Semgrep for security patterns
377
+ semgrep --config auto src/
378
+ ```
379
+
380
+ ### DAST (Dynamic Application Security Testing)
381
+
382
+ ```bash
383
+ # OWASP ZAP for runtime security scanning
384
+ docker run -t owasp/zap2docker-stable zap-baseline.py \
385
+ -t https://api.example.com \
386
+ -r zap-report.html
387
+ ```
388
+
389
+ ### Dependency Scanning (SCA)
390
+
391
+ ```bash
392
+ # npm audit for Node.js
393
+ npm audit fix
394
+
395
+ # Snyk for multi-language
396
+ snyk test
397
+ snyk monitor # Continuous monitoring
398
+ ```
399
+
400
+ ## Code Coverage
401
+
402
+ ### Target Metrics (SonarQube Standards)
403
+
404
+ - **Overall coverage:** 80%+
405
+ - **Critical paths:** 100% (authentication, payment, data integrity)
406
+ - **New code:** 90%+
407
+
408
+ ### Implementation
409
+
410
+ ```bash
411
+ # Vitest with coverage
412
+ vitest run --coverage
413
+
414
+ # Jest with coverage
415
+ jest --coverage --coverageThreshold='{"global":{"branches":80,"functions":80,"lines":80}}'
416
+ ```
417
+
418
+ ## CI/CD Testing Pipeline
419
+
420
+ ```yaml
421
+ # GitHub Actions example
422
+ name: Test Pipeline
423
+
424
+ on: [push, pull_request]
425
+
426
+ jobs:
427
+ test:
428
+ runs-on: ubuntu-latest
429
+ steps:
430
+ - uses: actions/checkout@v3
431
+
432
+ - name: Unit Tests
433
+ run: npm run test:unit
434
+
435
+ - name: Integration Tests
436
+ run: npm run test:integration
437
+
438
+ - name: E2E Tests
439
+ run: npm run test:e2e
440
+
441
+ - name: Load Tests
442
+ run: k6 run load-test.js
443
+
444
+ - name: Security Scan
445
+ run: npm audit && snyk test
446
+
447
+ - name: Coverage Report
448
+ run: npm run test:coverage
449
+
450
+ - name: Upload to Codecov
451
+ uses: codecov/codecov-action@v3
452
+ ```
453
+
454
+ ## Testing Best Practices
455
+
456
+ 1. **Arrange-Act-Assert (AAA) Pattern**
457
+ 2. **One assertion per test** (when practical)
458
+ 3. **Descriptive test names** - `should throw error when email is invalid`
459
+ 4. **Test edge cases** - Empty inputs, boundary values, null/undefined
460
+ 5. **Clean test data** - Reset database state between tests
461
+ 6. **Fast tests** - Unit tests < 10ms, Integration < 100ms
462
+ 7. **Deterministic** - No flaky tests, avoid sleep(), use waitFor()
463
+ 8. **Independent** - Tests don't depend on execution order
464
+
465
+ ## Testing Checklist
466
+
467
+ - [ ] Unit tests cover 70% of codebase
468
+ - [ ] Integration tests for all API endpoints
469
+ - [ ] Contract tests for microservices
470
+ - [ ] Load tests configured (k6/Gatling)
471
+ - [ ] E2E tests for critical user flows
472
+ - [ ] Database migration tests
473
+ - [ ] Security scanning in CI/CD (SAST, DAST, SCA)
474
+ - [ ] Code coverage reports automated
475
+ - [ ] Tests run on every PR
476
+ - [ ] Flaky tests eliminated
477
+
478
+ ## Resources
479
+
480
+ - **Vitest:** https://vitest.dev/
481
+ - **Playwright:** https://playwright.dev/
482
+ - **k6:** https://k6.io/docs/
483
+ - **Pact:** https://docs.pact.io/
484
+ - **TestContainers:** https://testcontainers.com/