cokit-cli 1.0.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (878) hide show
  1. package/LICENSE +32 -32
  2. package/README.FLOW.md +237 -237
  3. package/README.md +131 -92
  4. package/agents/brainstormer.agent.md +71 -71
  5. package/agents/code-reviewer.agent.md +136 -136
  6. package/agents/code-simplifier.agent.md +43 -0
  7. package/agents/debugger.agent.md +128 -128
  8. package/agents/docs-manager.agent.md +121 -121
  9. package/agents/fullstack-developer.agent.md +52 -0
  10. package/agents/git-manager.agent.md +390 -390
  11. package/agents/planner.agent.md +94 -94
  12. package/agents/researcher.agent.md +32 -32
  13. package/agents/scout.agent.md +107 -107
  14. package/agents/tester.agent.md +117 -117
  15. package/agents/ui-ux-designer.agent.md +58 -0
  16. package/bin/cokit.js +4 -4
  17. package/collections/ck-core.collection.yml +28 -28
  18. package/collections/ck-development-rules.collection.yml +18 -18
  19. package/collections/ck-documentation.collection.yml +14 -14
  20. package/collections/ck-git-workflow.collection.yml +12 -12
  21. package/collections/ck-orchestration.collection.yml +16 -16
  22. package/docs/README.md +75 -108
  23. package/docs/code-standards.md +68 -0
  24. package/docs/codebase-summary.md +263 -0
  25. package/docs/cokit-commands-usage-guide.md +139 -0
  26. package/docs/cokit-comprehensive-mapping-guide.md +361 -374
  27. package/docs/cokit-instruction-guide.html +3004 -0
  28. package/docs/cokit-slides.md +212 -222
  29. package/docs/cokit-sync-and-maintenance-guide.md +414 -0
  30. package/docs/cokit-team-presentation.md +356 -378
  31. package/docs/copilot-processing-flow.md +215 -212
  32. package/docs/guide-next-steps-speckit-cokit-implementation.md +187 -0
  33. package/docs/images/cokit-command-finder-final.png +0 -0
  34. package/docs/images/cokit-highlight-fix.png +0 -0
  35. package/docs/images/cokit-highlight-test.png +0 -0
  36. package/docs/migration-guide.md +133 -133
  37. package/docs/project-overview-pdr.md +45 -0
  38. package/docs/project-roadmap.md +308 -280
  39. package/docs/system-architecture.md +81 -0
  40. package/instructions/ck-backend.instructions.md +48 -48
  41. package/instructions/ck-development.instructions.md +54 -54
  42. package/instructions/ck-frontend.instructions.md +44 -44
  43. package/instructions/ck-research.instructions.md +167 -167
  44. package/instructions/ck-testing.instructions.md +36 -36
  45. package/package.json +71 -42
  46. package/prompts/ck-ask.prompt.md +66 -57
  47. package/prompts/ck-bootstrap.prompt.md +147 -136
  48. package/prompts/ck-brainstorm.prompt.md +86 -105
  49. package/prompts/ck-cook.prompt.md +95 -97
  50. package/prompts/ck-debug.prompt.md +114 -14
  51. package/prompts/ck-docs.prompt.md +101 -51
  52. package/prompts/ck-fix.prompt.md +52 -44
  53. package/prompts/ck-git.prompt.md +104 -79
  54. package/{templates/repo/.github/prompts/ck-ck-help.prompt.md → prompts/ck-help.prompt.md} +140 -112
  55. package/prompts/ck-journal.prompt.md +17 -0
  56. package/prompts/ck-plan-fast.prompt.md +85 -0
  57. package/prompts/ck-plan-hard.prompt.md +112 -0
  58. package/prompts/ck-plan.prompt.md +38 -80
  59. package/prompts/ck-preview.prompt.md +93 -0
  60. package/{templates/repo/.github/prompts/ck-review-codebase.prompt.md → prompts/ck-review.prompt.md} +59 -44
  61. package/prompts/ck-scout.prompt.md +84 -25
  62. package/prompts/ck-simplify.prompt.md +46 -0
  63. package/prompts/ck-spec-analyze.prompt.md +203 -0
  64. package/prompts/ck-spec-checklist.prompt.md +310 -0
  65. package/prompts/ck-spec-clarify.prompt.md +197 -0
  66. package/prompts/ck-spec-constitution.prompt.md +97 -0
  67. package/prompts/ck-spec-implement.prompt.md +160 -0
  68. package/prompts/ck-spec-plan.prompt.md +108 -0
  69. package/prompts/ck-spec-specify.prompt.md +270 -0
  70. package/prompts/ck-spec-tasks.prompt.md +193 -0
  71. package/prompts/ck-spec-taskstoissues.prompt.md +48 -0
  72. package/prompts/ck-test.prompt.md +19 -10
  73. package/prompts/ck-watzup.prompt.md +19 -0
  74. package/skills/INSTALLATION.md +311 -0
  75. package/skills/README.md +134 -0
  76. package/skills/THIRD_PARTY_NOTICES.md +405 -0
  77. package/skills/agent-browser/SKILL.md +292 -0
  78. package/skills/agent-browser/references/.gitkeep +0 -0
  79. package/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  80. package/skills/agent_skills_spec.md +55 -0
  81. package/skills/{ck-backend-development → backend-development}/SKILL.md +96 -96
  82. package/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  83. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-architecture.md +454 -454
  84. package/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  85. package/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  86. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-debugging.md +904 -904
  87. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-devops.md +494 -494
  88. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-mindset.md +387 -387
  89. package/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  90. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-security.md +340 -290
  91. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-technologies.md +300 -290
  92. package/{templates/repo/.github/skills/ck-backend-development → skills/backend-development}/references/backend-testing.md +484 -561
  93. package/skills/brainstorm/SKILL.md +76 -0
  94. package/{templates/repo/.github/skills/ck-code-review → skills/code-review}/SKILL.md +143 -143
  95. package/skills/{ck-code-review → code-review}/references/code-review-reception.md +1 -1
  96. package/skills/common/README.md +120 -0
  97. package/skills/common/api_key_helper.py +411 -0
  98. package/skills/common/api_key_rotator.py +248 -0
  99. package/skills/context-engineering/SKILL.md +107 -0
  100. package/skills/context-engineering/references/context-compression.md +84 -0
  101. package/skills/context-engineering/references/context-degradation.md +93 -0
  102. package/skills/context-engineering/references/context-fundamentals.md +75 -0
  103. package/skills/context-engineering/references/context-optimization.md +82 -0
  104. package/skills/context-engineering/references/evaluation.md +89 -0
  105. package/skills/context-engineering/references/memory-systems.md +88 -0
  106. package/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  107. package/skills/context-engineering/references/project-development.md +97 -0
  108. package/skills/context-engineering/references/runtime-awareness.md +202 -0
  109. package/skills/context-engineering/references/tool-design.md +86 -0
  110. package/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  111. package/skills/context-engineering/scripts/context_analyzer.py +317 -0
  112. package/skills/cook/README.md +86 -0
  113. package/skills/cook/SKILL.md +94 -0
  114. package/skills/cook/references/intent-detection.md +101 -0
  115. package/skills/cook/references/review-cycle.md +75 -0
  116. package/skills/cook/references/subagent-patterns.md +75 -0
  117. package/skills/cook/references/workflow-steps.md +140 -0
  118. package/skills/databases/SKILL.md +112 -0
  119. package/skills/databases/analytics.md +198 -0
  120. package/skills/databases/db-design.md +188 -0
  121. package/skills/databases/incremental-etl.md +213 -0
  122. package/skills/databases/references/mongodb-aggregation.md +447 -0
  123. package/skills/databases/references/mongodb-atlas.md +465 -0
  124. package/skills/databases/references/mongodb-crud.md +408 -0
  125. package/skills/databases/references/mongodb-indexing.md +442 -0
  126. package/skills/databases/references/postgresql-administration.md +594 -0
  127. package/skills/databases/references/postgresql-performance.md +527 -0
  128. package/skills/databases/references/postgresql-psql-cli.md +467 -0
  129. package/skills/databases/references/postgresql-queries.md +475 -0
  130. package/skills/databases/scripts/db_backup.py +502 -0
  131. package/skills/databases/scripts/db_migrate.py +426 -0
  132. package/skills/databases/scripts/db_performance_check.py +457 -0
  133. package/skills/databases/scripts/requirements.txt +20 -0
  134. package/skills/databases/stacks/bigquery.md +231 -0
  135. package/skills/databases/stacks/d1_cloudflare.md +137 -0
  136. package/skills/databases/stacks/mysql.md +216 -0
  137. package/skills/databases/stacks/postgres.md +235 -0
  138. package/skills/databases/stacks/sqlite.md +244 -0
  139. package/skills/databases/transactional.md +176 -0
  140. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/SKILL.md +84 -82
  141. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/defense-in-depth.md +124 -124
  142. package/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  143. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/references/systematic-debugging.md +102 -102
  144. package/skills/{ck-debugging → debug}/references/verification.md +123 -123
  145. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.sh +63 -63
  146. package/{templates/repo/.github/skills/ck-debugging → skills/debug}/scripts/find-polluter.test.md +102 -102
  147. package/skills/devops/.env.example +76 -0
  148. package/skills/devops/SKILL.md +104 -0
  149. package/skills/devops/references/browser-rendering.md +305 -0
  150. package/skills/devops/references/cloudflare-d1-kv.md +123 -0
  151. package/skills/devops/references/cloudflare-platform.md +271 -0
  152. package/skills/devops/references/cloudflare-r2-storage.md +280 -0
  153. package/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  154. package/skills/devops/references/cloudflare-workers-apis.md +309 -0
  155. package/skills/devops/references/cloudflare-workers-basics.md +418 -0
  156. package/skills/devops/references/docker-basics.md +297 -0
  157. package/skills/devops/references/docker-compose.md +292 -0
  158. package/skills/devops/references/gcloud-platform.md +297 -0
  159. package/skills/devops/references/gcloud-services.md +304 -0
  160. package/skills/devops/references/kubernetes-basics.md +99 -0
  161. package/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  162. package/skills/devops/references/kubernetes-helm.md +81 -0
  163. package/skills/devops/references/kubernetes-kubectl.md +74 -0
  164. package/skills/devops/references/kubernetes-security-advanced.md +98 -0
  165. package/skills/devops/references/kubernetes-security.md +95 -0
  166. package/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  167. package/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  168. package/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  169. package/skills/devops/references/kubernetes-workflows.md +78 -0
  170. package/skills/devops/scripts/cloudflare_deploy.py +269 -0
  171. package/skills/devops/scripts/docker_optimize.py +332 -0
  172. package/skills/devops/scripts/requirements.txt +20 -0
  173. package/skills/docs-seeker/.env.example +15 -0
  174. package/skills/docs-seeker/SKILL.md +97 -0
  175. package/skills/docs-seeker/package.json +25 -0
  176. package/skills/docs-seeker/references/advanced.md +79 -0
  177. package/skills/docs-seeker/references/context7-patterns.md +64 -0
  178. package/skills/docs-seeker/references/errors.md +68 -0
  179. package/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  180. package/skills/docs-seeker/scripts/detect-topic.js +172 -0
  181. package/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  182. package/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  183. package/skills/docs-seeker/workflows/library-search.md +86 -0
  184. package/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  185. package/skills/docs-seeker/workflows/topic-search.md +77 -0
  186. package/skills/fix/SKILL.md +101 -0
  187. package/skills/fix/references/complexity-assessment.md +61 -0
  188. package/skills/fix/references/mode-selection.md +46 -0
  189. package/skills/fix/references/parallel-exploration.md +77 -0
  190. package/skills/fix/references/review-cycle.md +77 -0
  191. package/skills/fix/references/skill-activation-matrix.md +65 -0
  192. package/skills/fix/references/workflow-ci.md +28 -0
  193. package/skills/fix/references/workflow-deep.md +91 -0
  194. package/skills/fix/references/workflow-logs.md +36 -0
  195. package/skills/fix/references/workflow-quick.md +59 -0
  196. package/skills/fix/references/workflow-standard.md +86 -0
  197. package/skills/fix/references/workflow-test.md +36 -0
  198. package/skills/fix/references/workflow-types.md +33 -0
  199. package/skills/fix/references/workflow-ui.md +34 -0
  200. package/skills/frontend-design/SKILL.md +75 -0
  201. package/skills/frontend-design/references/analysis-best-practices.md +80 -0
  202. package/skills/frontend-design/references/analysis-prompts.md +141 -0
  203. package/skills/frontend-design/references/analysis-techniques.md +118 -0
  204. package/skills/frontend-design/references/animejs.md +396 -0
  205. package/skills/frontend-design/references/asset-generation.md +161 -0
  206. package/skills/frontend-design/references/design-extraction-overview.md +71 -0
  207. package/skills/frontend-design/references/extraction-best-practices.md +141 -0
  208. package/skills/frontend-design/references/extraction-output-templates.md +162 -0
  209. package/skills/frontend-design/references/extraction-prompts.md +127 -0
  210. package/skills/frontend-design/references/technical-accessibility.md +119 -0
  211. package/skills/frontend-design/references/technical-best-practices.md +97 -0
  212. package/skills/frontend-design/references/technical-optimization.md +44 -0
  213. package/skills/frontend-design/references/technical-overview.md +90 -0
  214. package/skills/frontend-design/references/technical-workflows.md +150 -0
  215. package/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  216. package/skills/frontend-design/references/workflow-describe.md +86 -0
  217. package/skills/frontend-design/references/workflow-quick.md +54 -0
  218. package/skills/frontend-design/references/workflow-screenshot.md +62 -0
  219. package/skills/git/SKILL.md +100 -0
  220. package/skills/git/references/branch-management.md +88 -0
  221. package/skills/git/references/commit-standards.md +46 -0
  222. package/skills/git/references/gh-cli-guide.md +109 -0
  223. package/skills/git/references/safety-protocols.md +69 -0
  224. package/skills/git/references/workflow-commit.md +58 -0
  225. package/skills/git/references/workflow-merge.md +48 -0
  226. package/skills/git/references/workflow-pr.md +58 -0
  227. package/skills/git/references/workflow-push.md +52 -0
  228. package/skills/install.ps1 +1247 -0
  229. package/skills/install.sh +1300 -0
  230. package/skills/mcp-management/README.md +219 -0
  231. package/skills/mcp-management/SKILL.md +209 -0
  232. package/skills/mcp-management/assets/tools.json +3146 -0
  233. package/skills/mcp-management/references/configuration.md +114 -0
  234. package/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  235. package/skills/mcp-management/references/mcp-protocol.md +116 -0
  236. package/skills/mcp-management/scripts/.env.example +10 -0
  237. package/skills/mcp-management/scripts/cli.ts +195 -0
  238. package/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  239. package/skills/mcp-management/scripts/dist/cli.js +160 -0
  240. package/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  241. package/skills/mcp-management/scripts/mcp-client.ts +230 -0
  242. package/skills/mcp-management/scripts/package.json +20 -0
  243. package/skills/mcp-management/scripts/tsconfig.json +15 -0
  244. package/skills/mermaidjs-v11/SKILL.md +115 -0
  245. package/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  246. package/skills/mermaidjs-v11/references/configuration.md +232 -0
  247. package/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  248. package/skills/mermaidjs-v11/references/examples.md +344 -0
  249. package/skills/mermaidjs-v11/references/integration.md +310 -0
  250. package/skills/{ck-planning → planning}/SKILL.md +132 -112
  251. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/codebase-understanding.md +62 -62
  252. package/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  253. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/plan-organization.md +160 -150
  254. package/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  255. package/{templates/repo/.github/skills/ck-planning → skills/planning}/references/solution-design.md +63 -63
  256. package/skills/{ck-problem-solving → problem-solving}/SKILL.md +96 -95
  257. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/attribution.md +69 -69
  258. package/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  259. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/inversion-exercise.md +91 -91
  260. package/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  261. package/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  262. package/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  263. package/{templates/repo/.github/skills/ck-problem-solving → skills/problem-solving}/references/when-stuck.md +72 -72
  264. package/skills/repomix/SKILL.md +247 -0
  265. package/skills/repomix/references/configuration.md +211 -0
  266. package/skills/repomix/references/usage-patterns.md +232 -0
  267. package/skills/repomix/scripts/README.md +179 -0
  268. package/skills/repomix/scripts/repomix_batch.py +455 -0
  269. package/skills/repomix/scripts/repos.example.json +15 -0
  270. package/skills/repomix/scripts/requirements.txt +15 -0
  271. package/skills/research/SKILL.md +170 -0
  272. package/skills/scout/SKILL.md +79 -0
  273. package/skills/scout/references/external-scouting.md +140 -0
  274. package/skills/scout/references/internal-scouting.md +119 -0
  275. package/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  276. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/README.md +183 -183
  277. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/SKILL.md +94 -92
  278. package/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  279. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  280. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  281. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/references/core-patterns.md +95 -95
  282. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  283. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  284. package/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  285. package/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  286. package/{templates/repo/.github/skills/ck-sequential-thinking → skills/sequential-thinking}/scripts/process-thought.js +236 -236
  287. package/skills/ui-styling/LICENSE.txt +202 -0
  288. package/skills/ui-styling/SKILL.md +321 -0
  289. package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  290. package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  291. package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  292. package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  293. package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  294. package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  295. package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  296. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  297. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  298. package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  299. package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  300. package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  301. package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  302. package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  303. package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  304. package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  305. package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  306. package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  307. package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  308. package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  309. package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  310. package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  311. package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  312. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  313. package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  314. package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  315. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  316. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  317. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  318. package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  319. package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  320. package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  321. package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  322. package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  323. package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  324. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  325. package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  326. package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  327. package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  328. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  329. package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  330. package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  331. package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  332. package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  333. package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  334. package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  335. package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  336. package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  337. package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  338. package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  339. package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  340. package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  341. package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  342. package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  343. package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  344. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  345. package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  346. package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  347. package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  348. package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  349. package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  350. package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  351. package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  352. package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  353. package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  354. package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  355. package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  356. package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  357. package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  358. package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  359. package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  360. package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  361. package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  362. package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  363. package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  364. package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  365. package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  366. package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  367. package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  368. package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  369. package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  370. package/skills/ui-styling/references/canvas-design-system.md +320 -0
  371. package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  372. package/skills/ui-styling/references/shadcn-components.md +424 -0
  373. package/skills/ui-styling/references/shadcn-theming.md +373 -0
  374. package/skills/ui-styling/references/tailwind-customization.md +483 -0
  375. package/skills/ui-styling/references/tailwind-responsive.md +382 -0
  376. package/skills/ui-styling/references/tailwind-utilities.md +455 -0
  377. package/skills/ui-styling/scripts/requirements.txt +17 -0
  378. package/skills/ui-styling/scripts/shadcn_add.py +292 -0
  379. package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  380. package/skills/web-testing/SKILL.md +96 -0
  381. package/skills/web-testing/references/accessibility-testing.md +84 -0
  382. package/skills/web-testing/references/api-testing.md +78 -0
  383. package/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  384. package/skills/web-testing/references/component-testing.md +94 -0
  385. package/skills/web-testing/references/contract-testing.md +146 -0
  386. package/skills/web-testing/references/cross-browser-checklist.md +72 -0
  387. package/skills/web-testing/references/database-testing.md +139 -0
  388. package/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  389. package/skills/web-testing/references/functional-testing-checklist.md +88 -0
  390. package/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  391. package/skills/web-testing/references/load-testing-k6.md +93 -0
  392. package/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  393. package/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  394. package/skills/web-testing/references/playwright-component-testing.md +115 -0
  395. package/skills/web-testing/references/pre-release-checklist.md +75 -0
  396. package/skills/web-testing/references/security-checklists.md +81 -0
  397. package/skills/web-testing/references/security-testing-overview.md +92 -0
  398. package/skills/web-testing/references/shadow-dom-testing.md +70 -0
  399. package/skills/web-testing/references/test-data-management.md +131 -0
  400. package/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  401. package/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  402. package/skills/web-testing/references/unit-integration-testing.md +138 -0
  403. package/skills/web-testing/references/visual-regression.md +92 -0
  404. package/skills/web-testing/references/vulnerability-payloads.md +93 -0
  405. package/skills/web-testing/scripts/analyze-test-results.js +280 -0
  406. package/skills/web-testing/scripts/init-playwright.js +233 -0
  407. package/src/commands/add.js +93 -93
  408. package/src/commands/doctor.js +117 -117
  409. package/src/commands/init.js +183 -183
  410. package/src/commands/list.js +91 -91
  411. package/src/commands/update.js +22 -22
  412. package/src/index.js +35 -35
  413. package/src/utils/colors.js +14 -14
  414. package/src/utils/copy.js +122 -122
  415. package/src/utils/paths.js +66 -66
  416. package/src/utils/update-checker.js +126 -126
  417. package/templates/repo/.github/AGENTS.md +103 -55
  418. package/templates/repo/.github/agents/brainstormer.agent.md +71 -71
  419. package/templates/repo/.github/agents/code-reviewer.agent.md +136 -136
  420. package/templates/repo/.github/agents/code-simplifier.agent.md +43 -0
  421. package/templates/repo/.github/agents/debugger.agent.md +128 -128
  422. package/templates/repo/.github/agents/docs-manager.agent.md +121 -121
  423. package/templates/repo/.github/agents/fullstack-developer.agent.md +52 -0
  424. package/templates/repo/.github/agents/git-manager.agent.md +390 -390
  425. package/templates/repo/.github/agents/planner.agent.md +94 -94
  426. package/templates/repo/.github/agents/researcher.agent.md +32 -32
  427. package/templates/repo/.github/agents/scout.agent.md +107 -107
  428. package/templates/repo/.github/agents/tester.agent.md +117 -117
  429. package/templates/repo/.github/agents/ui-ux-designer.agent.md +58 -0
  430. package/templates/repo/.github/collections/ck-core.collection.yml +28 -28
  431. package/templates/repo/.github/collections/ck-development-rules.collection.yml +18 -18
  432. package/templates/repo/.github/collections/ck-documentation.collection.yml +14 -14
  433. package/templates/repo/.github/collections/ck-git-workflow.collection.yml +12 -12
  434. package/templates/repo/.github/collections/ck-orchestration.collection.yml +16 -16
  435. package/templates/repo/.github/instructions/ck-backend.instructions.md +48 -48
  436. package/templates/repo/.github/instructions/ck-development.instructions.md +54 -54
  437. package/templates/repo/.github/instructions/ck-frontend.instructions.md +44 -44
  438. package/templates/repo/.github/instructions/ck-research.instructions.md +167 -167
  439. package/templates/repo/.github/instructions/ck-testing.instructions.md +36 -36
  440. package/templates/repo/.github/prompts/ck-ask.prompt.md +66 -57
  441. package/templates/repo/.github/prompts/ck-bootstrap.prompt.md +147 -136
  442. package/templates/repo/.github/prompts/ck-brainstorm.prompt.md +86 -105
  443. package/templates/repo/.github/prompts/ck-cook.prompt.md +95 -97
  444. package/templates/repo/.github/prompts/ck-debug.prompt.md +114 -14
  445. package/templates/repo/.github/prompts/ck-docs.prompt.md +101 -51
  446. package/templates/repo/.github/prompts/ck-fix.prompt.md +52 -44
  447. package/templates/repo/.github/prompts/ck-git.prompt.md +104 -79
  448. package/{prompts/ck-ck-help.prompt.md → templates/repo/.github/prompts/ck-help.prompt.md} +140 -112
  449. package/templates/repo/.github/prompts/ck-journal.prompt.md +17 -0
  450. package/templates/repo/.github/prompts/ck-plan-fast.prompt.md +85 -0
  451. package/templates/repo/.github/prompts/ck-plan-hard.prompt.md +112 -0
  452. package/templates/repo/.github/prompts/ck-plan.prompt.md +38 -80
  453. package/templates/repo/.github/prompts/ck-preview.prompt.md +93 -0
  454. package/{prompts/ck-review-codebase.prompt.md → templates/repo/.github/prompts/ck-review.prompt.md} +59 -44
  455. package/templates/repo/.github/prompts/ck-scout.prompt.md +84 -25
  456. package/templates/repo/.github/prompts/ck-simplify.prompt.md +46 -0
  457. package/templates/repo/.github/prompts/ck-spec-analyze.prompt.md +203 -0
  458. package/templates/repo/.github/prompts/ck-spec-checklist.prompt.md +310 -0
  459. package/templates/repo/.github/prompts/ck-spec-clarify.prompt.md +197 -0
  460. package/templates/repo/.github/prompts/ck-spec-constitution.prompt.md +97 -0
  461. package/templates/repo/.github/prompts/ck-spec-implement.prompt.md +160 -0
  462. package/templates/repo/.github/prompts/ck-spec-plan.prompt.md +108 -0
  463. package/templates/repo/.github/prompts/ck-spec-specify.prompt.md +270 -0
  464. package/templates/repo/.github/prompts/ck-spec-tasks.prompt.md +193 -0
  465. package/templates/repo/.github/prompts/ck-spec-taskstoissues.prompt.md +48 -0
  466. package/templates/repo/.github/prompts/ck-test.prompt.md +19 -10
  467. package/templates/repo/.github/prompts/ck-watzup.prompt.md +19 -0
  468. package/templates/repo/.github/skills/INSTALLATION.md +311 -0
  469. package/templates/repo/.github/skills/README.md +134 -0
  470. package/templates/repo/.github/skills/THIRD_PARTY_NOTICES.md +405 -0
  471. package/templates/repo/.github/skills/agent-browser/SKILL.md +292 -0
  472. package/templates/repo/.github/skills/agent-browser/references/.gitkeep +0 -0
  473. package/templates/repo/.github/skills/agent-browser/references/browserbase-cloud-setup.md +161 -0
  474. package/templates/repo/.github/skills/agent_skills_spec.md +55 -0
  475. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/SKILL.md +96 -96
  476. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-api-design.md +697 -495
  477. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-architecture.md +454 -454
  478. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-authentication.md +433 -338
  479. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-code-quality.md +659 -659
  480. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-debugging.md +904 -904
  481. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-devops.md +494 -494
  482. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-mindset.md +387 -387
  483. package/templates/repo/.github/skills/{ck-backend-development → backend-development}/references/backend-performance.md +397 -397
  484. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-security.md +340 -290
  485. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-technologies.md +300 -290
  486. package/{skills/ck-backend-development → templates/repo/.github/skills/backend-development}/references/backend-testing.md +484 -561
  487. package/templates/repo/.github/skills/brainstorm/SKILL.md +76 -0
  488. package/{skills/ck-code-review → templates/repo/.github/skills/code-review}/SKILL.md +143 -143
  489. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/code-review-reception.md +208 -208
  490. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/requesting-code-review.md +104 -104
  491. package/templates/repo/.github/skills/{ck-code-review → code-review}/references/verification-before-completion.md +138 -138
  492. package/templates/repo/.github/skills/common/README.md +120 -0
  493. package/templates/repo/.github/skills/common/api_key_helper.py +411 -0
  494. package/templates/repo/.github/skills/common/api_key_rotator.py +248 -0
  495. package/templates/repo/.github/skills/context-engineering/SKILL.md +107 -0
  496. package/templates/repo/.github/skills/context-engineering/references/context-compression.md +84 -0
  497. package/templates/repo/.github/skills/context-engineering/references/context-degradation.md +93 -0
  498. package/templates/repo/.github/skills/context-engineering/references/context-fundamentals.md +75 -0
  499. package/templates/repo/.github/skills/context-engineering/references/context-optimization.md +82 -0
  500. package/templates/repo/.github/skills/context-engineering/references/evaluation.md +89 -0
  501. package/templates/repo/.github/skills/context-engineering/references/memory-systems.md +88 -0
  502. package/templates/repo/.github/skills/context-engineering/references/multi-agent-patterns.md +90 -0
  503. package/templates/repo/.github/skills/context-engineering/references/project-development.md +97 -0
  504. package/templates/repo/.github/skills/context-engineering/references/runtime-awareness.md +202 -0
  505. package/templates/repo/.github/skills/context-engineering/references/tool-design.md +86 -0
  506. package/templates/repo/.github/skills/context-engineering/scripts/compression_evaluator.py +349 -0
  507. package/templates/repo/.github/skills/context-engineering/scripts/context_analyzer.py +317 -0
  508. package/templates/repo/.github/skills/cook/README.md +86 -0
  509. package/templates/repo/.github/skills/cook/SKILL.md +94 -0
  510. package/templates/repo/.github/skills/cook/references/intent-detection.md +101 -0
  511. package/templates/repo/.github/skills/cook/references/review-cycle.md +75 -0
  512. package/templates/repo/.github/skills/cook/references/subagent-patterns.md +75 -0
  513. package/templates/repo/.github/skills/cook/references/workflow-steps.md +140 -0
  514. package/templates/repo/.github/skills/databases/SKILL.md +112 -0
  515. package/templates/repo/.github/skills/databases/analytics.md +198 -0
  516. package/templates/repo/.github/skills/databases/db-design.md +188 -0
  517. package/templates/repo/.github/skills/databases/incremental-etl.md +213 -0
  518. package/templates/repo/.github/skills/databases/references/mongodb-aggregation.md +447 -0
  519. package/templates/repo/.github/skills/databases/references/mongodb-atlas.md +465 -0
  520. package/templates/repo/.github/skills/databases/references/mongodb-crud.md +408 -0
  521. package/templates/repo/.github/skills/databases/references/mongodb-indexing.md +442 -0
  522. package/templates/repo/.github/skills/databases/references/postgresql-administration.md +594 -0
  523. package/templates/repo/.github/skills/databases/references/postgresql-performance.md +527 -0
  524. package/templates/repo/.github/skills/databases/references/postgresql-psql-cli.md +467 -0
  525. package/templates/repo/.github/skills/databases/references/postgresql-queries.md +475 -0
  526. package/templates/repo/.github/skills/databases/scripts/db_backup.py +502 -0
  527. package/templates/repo/.github/skills/databases/scripts/db_migrate.py +426 -0
  528. package/templates/repo/.github/skills/databases/scripts/db_performance_check.py +457 -0
  529. package/templates/repo/.github/skills/databases/scripts/requirements.txt +20 -0
  530. package/templates/repo/.github/skills/databases/stacks/bigquery.md +231 -0
  531. package/templates/repo/.github/skills/databases/stacks/d1_cloudflare.md +137 -0
  532. package/templates/repo/.github/skills/databases/stacks/mysql.md +216 -0
  533. package/templates/repo/.github/skills/databases/stacks/postgres.md +235 -0
  534. package/templates/repo/.github/skills/databases/stacks/sqlite.md +244 -0
  535. package/templates/repo/.github/skills/databases/transactional.md +176 -0
  536. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/SKILL.md +84 -82
  537. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/defense-in-depth.md +124 -124
  538. package/templates/repo/.github/skills/{ck-debugging → debug}/references/root-cause-tracing.md +122 -122
  539. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/references/systematic-debugging.md +102 -102
  540. package/templates/repo/.github/skills/{ck-debugging → debug}/references/verification.md +123 -123
  541. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.sh +63 -63
  542. package/{skills/ck-debugging → templates/repo/.github/skills/debug}/scripts/find-polluter.test.md +102 -102
  543. package/templates/repo/.github/skills/devops/.env.example +76 -0
  544. package/templates/repo/.github/skills/devops/SKILL.md +104 -0
  545. package/templates/repo/.github/skills/devops/references/browser-rendering.md +305 -0
  546. package/templates/repo/.github/skills/devops/references/cloudflare-d1-kv.md +123 -0
  547. package/templates/repo/.github/skills/devops/references/cloudflare-platform.md +271 -0
  548. package/templates/repo/.github/skills/devops/references/cloudflare-r2-storage.md +280 -0
  549. package/templates/repo/.github/skills/devops/references/cloudflare-workers-advanced.md +312 -0
  550. package/templates/repo/.github/skills/devops/references/cloudflare-workers-apis.md +309 -0
  551. package/templates/repo/.github/skills/devops/references/cloudflare-workers-basics.md +418 -0
  552. package/templates/repo/.github/skills/devops/references/docker-basics.md +297 -0
  553. package/templates/repo/.github/skills/devops/references/docker-compose.md +292 -0
  554. package/templates/repo/.github/skills/devops/references/gcloud-platform.md +297 -0
  555. package/templates/repo/.github/skills/devops/references/gcloud-services.md +304 -0
  556. package/templates/repo/.github/skills/devops/references/kubernetes-basics.md +99 -0
  557. package/templates/repo/.github/skills/devops/references/kubernetes-helm-advanced.md +75 -0
  558. package/templates/repo/.github/skills/devops/references/kubernetes-helm.md +81 -0
  559. package/templates/repo/.github/skills/devops/references/kubernetes-kubectl.md +74 -0
  560. package/templates/repo/.github/skills/devops/references/kubernetes-security-advanced.md +98 -0
  561. package/templates/repo/.github/skills/devops/references/kubernetes-security.md +95 -0
  562. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  563. package/templates/repo/.github/skills/devops/references/kubernetes-troubleshooting.md +49 -0
  564. package/templates/repo/.github/skills/devops/references/kubernetes-workflows-advanced.md +75 -0
  565. package/templates/repo/.github/skills/devops/references/kubernetes-workflows.md +78 -0
  566. package/templates/repo/.github/skills/devops/scripts/cloudflare_deploy.py +269 -0
  567. package/templates/repo/.github/skills/devops/scripts/docker_optimize.py +332 -0
  568. package/templates/repo/.github/skills/devops/scripts/requirements.txt +20 -0
  569. package/templates/repo/.github/skills/docs-seeker/.env.example +15 -0
  570. package/templates/repo/.github/skills/docs-seeker/SKILL.md +97 -0
  571. package/templates/repo/.github/skills/docs-seeker/package.json +25 -0
  572. package/templates/repo/.github/skills/docs-seeker/references/advanced.md +79 -0
  573. package/templates/repo/.github/skills/docs-seeker/references/context7-patterns.md +64 -0
  574. package/templates/repo/.github/skills/docs-seeker/references/errors.md +68 -0
  575. package/templates/repo/.github/skills/docs-seeker/scripts/analyze-llms-txt.js +211 -0
  576. package/templates/repo/.github/skills/docs-seeker/scripts/detect-topic.js +172 -0
  577. package/templates/repo/.github/skills/docs-seeker/scripts/fetch-docs.js +214 -0
  578. package/templates/repo/.github/skills/docs-seeker/scripts/utils/env-loader.js +94 -0
  579. package/templates/repo/.github/skills/docs-seeker/workflows/library-search.md +86 -0
  580. package/templates/repo/.github/skills/docs-seeker/workflows/repo-analysis.md +91 -0
  581. package/templates/repo/.github/skills/docs-seeker/workflows/topic-search.md +77 -0
  582. package/templates/repo/.github/skills/fix/SKILL.md +101 -0
  583. package/templates/repo/.github/skills/fix/references/complexity-assessment.md +61 -0
  584. package/templates/repo/.github/skills/fix/references/mode-selection.md +46 -0
  585. package/templates/repo/.github/skills/fix/references/parallel-exploration.md +77 -0
  586. package/templates/repo/.github/skills/fix/references/review-cycle.md +77 -0
  587. package/templates/repo/.github/skills/fix/references/skill-activation-matrix.md +65 -0
  588. package/templates/repo/.github/skills/fix/references/workflow-ci.md +28 -0
  589. package/templates/repo/.github/skills/fix/references/workflow-deep.md +91 -0
  590. package/templates/repo/.github/skills/fix/references/workflow-logs.md +36 -0
  591. package/templates/repo/.github/skills/fix/references/workflow-quick.md +59 -0
  592. package/templates/repo/.github/skills/fix/references/workflow-standard.md +86 -0
  593. package/templates/repo/.github/skills/fix/references/workflow-test.md +36 -0
  594. package/templates/repo/.github/skills/fix/references/workflow-types.md +33 -0
  595. package/templates/repo/.github/skills/fix/references/workflow-ui.md +34 -0
  596. package/templates/repo/.github/skills/frontend-design/SKILL.md +75 -0
  597. package/templates/repo/.github/skills/frontend-design/references/analysis-best-practices.md +80 -0
  598. package/templates/repo/.github/skills/frontend-design/references/analysis-prompts.md +141 -0
  599. package/templates/repo/.github/skills/frontend-design/references/analysis-techniques.md +118 -0
  600. package/templates/repo/.github/skills/frontend-design/references/animejs.md +396 -0
  601. package/templates/repo/.github/skills/frontend-design/references/asset-generation.md +161 -0
  602. package/templates/repo/.github/skills/frontend-design/references/design-extraction-overview.md +71 -0
  603. package/templates/repo/.github/skills/frontend-design/references/extraction-best-practices.md +141 -0
  604. package/templates/repo/.github/skills/frontend-design/references/extraction-output-templates.md +162 -0
  605. package/templates/repo/.github/skills/frontend-design/references/extraction-prompts.md +127 -0
  606. package/templates/repo/.github/skills/frontend-design/references/technical-accessibility.md +119 -0
  607. package/templates/repo/.github/skills/frontend-design/references/technical-best-practices.md +97 -0
  608. package/templates/repo/.github/skills/frontend-design/references/technical-optimization.md +44 -0
  609. package/templates/repo/.github/skills/frontend-design/references/technical-overview.md +90 -0
  610. package/templates/repo/.github/skills/frontend-design/references/technical-workflows.md +150 -0
  611. package/templates/repo/.github/skills/frontend-design/references/visual-analysis-overview.md +95 -0
  612. package/templates/repo/.github/skills/frontend-design/references/workflow-describe.md +86 -0
  613. package/templates/repo/.github/skills/frontend-design/references/workflow-quick.md +54 -0
  614. package/templates/repo/.github/skills/frontend-design/references/workflow-screenshot.md +62 -0
  615. package/templates/repo/.github/skills/git/SKILL.md +100 -0
  616. package/templates/repo/.github/skills/git/references/branch-management.md +88 -0
  617. package/templates/repo/.github/skills/git/references/commit-standards.md +46 -0
  618. package/templates/repo/.github/skills/git/references/gh-cli-guide.md +109 -0
  619. package/templates/repo/.github/skills/git/references/safety-protocols.md +69 -0
  620. package/templates/repo/.github/skills/git/references/workflow-commit.md +58 -0
  621. package/templates/repo/.github/skills/git/references/workflow-merge.md +48 -0
  622. package/templates/repo/.github/skills/git/references/workflow-pr.md +58 -0
  623. package/templates/repo/.github/skills/git/references/workflow-push.md +52 -0
  624. package/templates/repo/.github/skills/install.ps1 +1247 -0
  625. package/templates/repo/.github/skills/install.sh +1300 -0
  626. package/templates/repo/.github/skills/mcp-management/README.md +219 -0
  627. package/templates/repo/.github/skills/mcp-management/SKILL.md +209 -0
  628. package/templates/repo/.github/skills/mcp-management/assets/tools.json +3146 -0
  629. package/templates/repo/.github/skills/mcp-management/references/configuration.md +114 -0
  630. package/templates/repo/.github/skills/mcp-management/references/gemini-cli-integration.md +221 -0
  631. package/templates/repo/.github/skills/mcp-management/references/mcp-protocol.md +116 -0
  632. package/templates/repo/.github/skills/mcp-management/scripts/.env.example +10 -0
  633. package/templates/repo/.github/skills/mcp-management/scripts/cli.ts +195 -0
  634. package/templates/repo/.github/skills/mcp-management/scripts/dist/analyze-tools.js +70 -0
  635. package/templates/repo/.github/skills/mcp-management/scripts/dist/cli.js +160 -0
  636. package/templates/repo/.github/skills/mcp-management/scripts/dist/mcp-client.js +183 -0
  637. package/templates/repo/.github/skills/mcp-management/scripts/mcp-client.ts +230 -0
  638. package/templates/repo/.github/skills/mcp-management/scripts/package.json +20 -0
  639. package/templates/repo/.github/skills/mcp-management/scripts/tsconfig.json +15 -0
  640. package/templates/repo/.github/skills/mermaidjs-v11/SKILL.md +115 -0
  641. package/templates/repo/.github/skills/mermaidjs-v11/references/cli-usage.md +228 -0
  642. package/templates/repo/.github/skills/mermaidjs-v11/references/configuration.md +232 -0
  643. package/templates/repo/.github/skills/mermaidjs-v11/references/diagram-types.md +315 -0
  644. package/templates/repo/.github/skills/mermaidjs-v11/references/examples.md +344 -0
  645. package/templates/repo/.github/skills/mermaidjs-v11/references/integration.md +310 -0
  646. package/templates/repo/.github/skills/{ck-planning → planning}/SKILL.md +132 -112
  647. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/codebase-understanding.md +62 -62
  648. package/templates/repo/.github/skills/{ck-planning → planning}/references/output-standards.md +141 -127
  649. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/plan-organization.md +160 -150
  650. package/templates/repo/.github/skills/{ck-planning → planning}/references/research-phase.md +49 -49
  651. package/{skills/ck-planning → templates/repo/.github/skills/planning}/references/solution-design.md +63 -63
  652. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/SKILL.md +96 -95
  653. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/attribution.md +69 -69
  654. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/collision-zone-thinking.md +79 -79
  655. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/inversion-exercise.md +91 -91
  656. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/meta-pattern-recognition.md +87 -87
  657. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/scale-game.md +95 -95
  658. package/templates/repo/.github/skills/{ck-problem-solving → problem-solving}/references/simplification-cascades.md +80 -80
  659. package/{skills/ck-problem-solving → templates/repo/.github/skills/problem-solving}/references/when-stuck.md +72 -72
  660. package/templates/repo/.github/skills/repomix/SKILL.md +247 -0
  661. package/templates/repo/.github/skills/repomix/references/configuration.md +211 -0
  662. package/templates/repo/.github/skills/repomix/references/usage-patterns.md +232 -0
  663. package/templates/repo/.github/skills/repomix/scripts/README.md +179 -0
  664. package/templates/repo/.github/skills/repomix/scripts/repomix_batch.py +455 -0
  665. package/templates/repo/.github/skills/repomix/scripts/repos.example.json +15 -0
  666. package/templates/repo/.github/skills/repomix/scripts/requirements.txt +15 -0
  667. package/templates/repo/.github/skills/research/SKILL.md +170 -0
  668. package/templates/repo/.github/skills/scout/SKILL.md +79 -0
  669. package/templates/repo/.github/skills/scout/references/external-scouting.md +140 -0
  670. package/templates/repo/.github/skills/scout/references/internal-scouting.md +119 -0
  671. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/.env.example +8 -8
  672. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/README.md +183 -183
  673. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/SKILL.md +94 -92
  674. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/package.json +31 -31
  675. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-strategies.md +79 -79
  676. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/advanced-techniques.md +76 -76
  677. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/references/core-patterns.md +95 -95
  678. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-api.md +88 -88
  679. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-architecture.md +94 -94
  680. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/references/examples-debug.md +90 -90
  681. package/templates/repo/.github/skills/{ck-sequential-thinking → sequential-thinking}/scripts/format-thought.js +159 -159
  682. package/{skills/ck-sequential-thinking → templates/repo/.github/skills/sequential-thinking}/scripts/process-thought.js +236 -236
  683. package/templates/repo/.github/skills/ui-styling/LICENSE.txt +202 -0
  684. package/templates/repo/.github/skills/ui-styling/SKILL.md +321 -0
  685. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  686. package/templates/repo/.github/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  687. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  688. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
  689. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  690. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
  691. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
  692. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  693. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  694. package/templates/repo/.github/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  695. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  696. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  697. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  698. package/templates/repo/.github/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  699. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
  700. package/templates/repo/.github/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
  701. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
  702. package/templates/repo/.github/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
  703. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
  704. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
  705. package/templates/repo/.github/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
  706. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
  707. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
  708. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  709. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  710. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  711. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  712. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  713. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  714. package/templates/repo/.github/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  715. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  716. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  717. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  718. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  719. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  720. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  721. package/templates/repo/.github/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  722. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
  723. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
  724. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  725. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  726. package/templates/repo/.github/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  727. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
  728. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
  729. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
  730. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  731. package/templates/repo/.github/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  732. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
  733. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  734. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
  735. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
  736. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
  737. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
  738. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
  739. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
  740. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  741. package/templates/repo/.github/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  742. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
  743. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
  744. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
  745. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  746. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
  747. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
  748. package/templates/repo/.github/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  749. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  750. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
  751. package/templates/repo/.github/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  752. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
  753. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  754. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  755. package/templates/repo/.github/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
  756. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
  757. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
  758. package/templates/repo/.github/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
  759. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
  760. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  761. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
  762. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
  763. package/templates/repo/.github/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
  764. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
  765. package/templates/repo/.github/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  766. package/templates/repo/.github/skills/ui-styling/references/canvas-design-system.md +320 -0
  767. package/templates/repo/.github/skills/ui-styling/references/shadcn-accessibility.md +471 -0
  768. package/templates/repo/.github/skills/ui-styling/references/shadcn-components.md +424 -0
  769. package/templates/repo/.github/skills/ui-styling/references/shadcn-theming.md +373 -0
  770. package/templates/repo/.github/skills/ui-styling/references/tailwind-customization.md +483 -0
  771. package/templates/repo/.github/skills/ui-styling/references/tailwind-responsive.md +382 -0
  772. package/templates/repo/.github/skills/ui-styling/references/tailwind-utilities.md +455 -0
  773. package/templates/repo/.github/skills/ui-styling/scripts/requirements.txt +17 -0
  774. package/templates/repo/.github/skills/ui-styling/scripts/shadcn_add.py +292 -0
  775. package/templates/repo/.github/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
  776. package/templates/repo/.github/skills/web-testing/SKILL.md +96 -0
  777. package/templates/repo/.github/skills/web-testing/references/accessibility-testing.md +84 -0
  778. package/templates/repo/.github/skills/web-testing/references/api-testing.md +78 -0
  779. package/templates/repo/.github/skills/web-testing/references/ci-cd-testing-workflows.md +121 -0
  780. package/templates/repo/.github/skills/web-testing/references/component-testing.md +94 -0
  781. package/templates/repo/.github/skills/web-testing/references/contract-testing.md +146 -0
  782. package/templates/repo/.github/skills/web-testing/references/cross-browser-checklist.md +72 -0
  783. package/templates/repo/.github/skills/web-testing/references/database-testing.md +139 -0
  784. package/templates/repo/.github/skills/web-testing/references/e2e-testing-playwright.md +119 -0
  785. package/templates/repo/.github/skills/web-testing/references/functional-testing-checklist.md +88 -0
  786. package/templates/repo/.github/skills/web-testing/references/interactive-testing-patterns.md +89 -0
  787. package/templates/repo/.github/skills/web-testing/references/load-testing-k6.md +93 -0
  788. package/templates/repo/.github/skills/web-testing/references/mobile-gesture-testing.md +85 -0
  789. package/templates/repo/.github/skills/web-testing/references/performance-core-web-vitals.md +124 -0
  790. package/templates/repo/.github/skills/web-testing/references/playwright-component-testing.md +115 -0
  791. package/templates/repo/.github/skills/web-testing/references/pre-release-checklist.md +75 -0
  792. package/templates/repo/.github/skills/web-testing/references/security-checklists.md +81 -0
  793. package/templates/repo/.github/skills/web-testing/references/security-testing-overview.md +92 -0
  794. package/templates/repo/.github/skills/web-testing/references/shadow-dom-testing.md +70 -0
  795. package/templates/repo/.github/skills/web-testing/references/test-data-management.md +131 -0
  796. package/templates/repo/.github/skills/web-testing/references/test-flakiness-mitigation.md +86 -0
  797. package/templates/repo/.github/skills/web-testing/references/testing-pyramid-strategy.md +76 -0
  798. package/templates/repo/.github/skills/web-testing/references/unit-integration-testing.md +138 -0
  799. package/templates/repo/.github/skills/web-testing/references/visual-regression.md +92 -0
  800. package/templates/repo/.github/skills/web-testing/references/vulnerability-payloads.md +93 -0
  801. package/templates/repo/.github/skills/web-testing/scripts/analyze-test-results.js +280 -0
  802. package/templates/repo/.github/skills/web-testing/scripts/init-playwright.js +233 -0
  803. package/templates/repo/.github/spec-kit/memory/constitution.md +50 -0
  804. package/templates/repo/.github/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
  805. package/templates/repo/.github/spec-kit/scripts/bash/common.sh +156 -0
  806. package/templates/repo/.github/spec-kit/scripts/bash/create-new-feature.sh +297 -0
  807. package/templates/repo/.github/spec-kit/scripts/bash/setup-plan.sh +61 -0
  808. package/templates/repo/.github/spec-kit/scripts/bash/update-agent-context.sh +799 -0
  809. package/templates/repo/.github/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
  810. package/templates/repo/.github/spec-kit/scripts/powershell/common.ps1 +137 -0
  811. package/templates/repo/.github/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
  812. package/templates/repo/.github/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
  813. package/templates/repo/.github/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
  814. package/templates/repo/.github/spec-kit/templates/agent-file-template.md +28 -0
  815. package/templates/repo/.github/spec-kit/templates/checklist-template.md +40 -0
  816. package/templates/repo/.github/spec-kit/templates/commands/analyze.md +187 -0
  817. package/templates/repo/.github/spec-kit/templates/commands/checklist.md +297 -0
  818. package/templates/repo/.github/spec-kit/templates/commands/clarify.md +184 -0
  819. package/templates/repo/.github/spec-kit/templates/commands/constitution.md +82 -0
  820. package/templates/repo/.github/spec-kit/templates/commands/implement.md +138 -0
  821. package/templates/repo/.github/spec-kit/templates/commands/plan.md +95 -0
  822. package/templates/repo/.github/spec-kit/templates/commands/specify.md +261 -0
  823. package/templates/repo/.github/spec-kit/templates/commands/tasks.md +140 -0
  824. package/templates/repo/.github/spec-kit/templates/commands/taskstoissues.md +33 -0
  825. package/templates/repo/.github/spec-kit/templates/plan-template.md +104 -0
  826. package/templates/repo/.github/spec-kit/templates/spec-template.md +115 -0
  827. package/templates/repo/.github/spec-kit/templates/tasks-phase-template.md +42 -0
  828. package/templates/repo/.github/spec-kit/templates/tasks-template.md +268 -0
  829. package/templates/repo/.github/spec-kit/templates/vscode-settings.json +14 -0
  830. package/templates/repo/.vscode/settings.json +70 -70
  831. package/.vscode/settings.json +0 -70
  832. package/AGENTS.md +0 -103
  833. package/FAQ.md +0 -101
  834. package/INIT.md +0 -154
  835. package/QUICK-START.md +0 -37
  836. package/changelogs/1.0.8.md +0 -77
  837. package/changelogs/1.0.9.md +0 -173
  838. package/plans/reports/docs-manager-260120-0854-documentation-update.md +0 -323
  839. package/prompts/ck-code.prompt.md +0 -178
  840. package/repomix-output.xml +0 -40725
  841. package/rules/README.agents.md +0 -55
  842. package/rules/README.collections.md +0 -78
  843. package/rules/README.copilot-instructions.md +0 -66
  844. package/rules/README.instructions.md +0 -73
  845. package/rules/README.md +0 -39
  846. package/rules/README.prompts.md +0 -76
  847. package/rules/README.skills.md +0 -71
  848. package/skills/ck-frontend-development/SKILL.md +0 -399
  849. package/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  850. package/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  851. package/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  852. package/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  853. package/skills/ck-frontend-development/resources/file-organization.md +0 -502
  854. package/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  855. package/skills/ck-frontend-development/resources/performance.md +0 -406
  856. package/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  857. package/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  858. package/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  859. package/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  860. package/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  861. package/templates/repo/.github/.cokit-version +0 -4
  862. package/templates/repo/.github/copilot-instructions.md +0 -45
  863. package/templates/repo/.github/prompts/ck-code.prompt.md +0 -178
  864. package/templates/repo/.github/skills/ck-frontend-development/SKILL.md +0 -399
  865. package/templates/repo/.github/skills/ck-frontend-development/resources/common-patterns.md +0 -331
  866. package/templates/repo/.github/skills/ck-frontend-development/resources/complete-examples.md +0 -872
  867. package/templates/repo/.github/skills/ck-frontend-development/resources/component-patterns.md +0 -502
  868. package/templates/repo/.github/skills/ck-frontend-development/resources/data-fetching.md +0 -767
  869. package/templates/repo/.github/skills/ck-frontend-development/resources/file-organization.md +0 -502
  870. package/templates/repo/.github/skills/ck-frontend-development/resources/loading-and-error-states.md +0 -501
  871. package/templates/repo/.github/skills/ck-frontend-development/resources/performance.md +0 -406
  872. package/templates/repo/.github/skills/ck-frontend-development/resources/routing-guide.md +0 -364
  873. package/templates/repo/.github/skills/ck-frontend-development/resources/styling-guide.md +0 -428
  874. package/templates/repo/.github/skills/ck-frontend-development/resources/typescript-standards.md +0 -418
  875. package/templates/repo/.github/skills/ck-sequential-thinking/tests/format-thought.test.js +0 -133
  876. package/templates/repo/.github/skills/ck-sequential-thinking/tests/process-thought.test.js +0 -215
  877. /package/skills/{ck-code-review → code-review}/references/requesting-code-review.md +0 -0
  878. /package/skills/{ck-code-review → code-review}/references/verification-before-completion.md +0 -0
@@ -1,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/