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,338 +1,433 @@
1
- # Backend Authentication & Authorization
2
-
3
- Modern authentication patterns including OAuth 2.1, JWT, RBAC, and MFA (2025 standards).
4
-
5
- ## OAuth 2.1 (2025 Standard)
6
-
7
- ### Key Changes from OAuth 2.0
8
-
9
- **Mandatory:**
10
- - PKCE (Proof Key for Code Exchange) for all clients
11
- - Exact redirect URI matching
12
- - State parameter for CSRF protection
13
-
14
- **Deprecated:**
15
- - Implicit grant flow (security risk)
16
- - Resource owner password credentials grant
17
- - Bearer token in query strings
18
-
19
- ### Authorization Code Flow with PKCE
20
-
21
- ```typescript
22
- // Step 1: Generate code verifier and challenge
23
- import crypto from 'crypto';
24
-
25
- const codeVerifier = crypto.randomBytes(32).toString('base64url');
26
- const codeChallenge = crypto
27
- .createHash('sha256')
28
- .update(codeVerifier)
29
- .digest('base64url');
30
-
31
- // Step 2: Redirect to authorization endpoint
32
- const authUrl = new URL('https://auth.example.com/authorize');
33
- authUrl.searchParams.set('client_id', 'your-client-id');
34
- authUrl.searchParams.set('redirect_uri', 'https://app.example.com/callback');
35
- authUrl.searchParams.set('response_type', 'code');
36
- authUrl.searchParams.set('scope', 'openid profile email');
37
- authUrl.searchParams.set('state', crypto.randomBytes(16).toString('hex'));
38
- authUrl.searchParams.set('code_challenge', codeChallenge);
39
- authUrl.searchParams.set('code_challenge_method', 'S256');
40
-
41
- // Step 3: Exchange code for token (with code_verifier)
42
- const tokenResponse = await fetch('https://auth.example.com/token', {
43
- method: 'POST',
44
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
45
- body: new URLSearchParams({
46
- grant_type: 'authorization_code',
47
- code: authCode,
48
- redirect_uri: redirectUri,
49
- client_id: clientId,
50
- code_verifier: codeVerifier,
51
- }),
52
- });
53
- ```
54
-
55
- ## JWT (JSON Web Tokens)
56
-
57
- ### Structure
58
-
59
- ```
60
- Header.Payload.Signature
61
- eyJhbGciOi... . eyJzdWIiOi... . SflKxwRJ...
62
- ```
63
-
64
- ### Best Practices (2025)
65
-
66
- 1. **Short expiration** - Access tokens: 15 minutes, Refresh tokens: 7 days
67
- 2. **Use RS256** - Asymmetric signing (not HS256 for public APIs)
68
- 3. **Validate everything** - Signature, issuer, audience, expiration
69
- 4. **Include minimal claims** - Don't include sensitive data
70
- 5. **Refresh token rotation** - Issue new refresh token on each use
71
-
72
- ### Implementation
73
-
74
- ```typescript
75
- import jwt from 'jsonwebtoken';
76
-
77
- // Generate JWT
78
- const accessToken = jwt.sign(
79
- {
80
- sub: user.id,
81
- email: user.email,
82
- roles: user.roles,
83
- },
84
- process.env.JWT_PRIVATE_KEY,
85
- {
86
- algorithm: 'RS256',
87
- expiresIn: '15m',
88
- issuer: 'https://api.example.com',
89
- audience: 'https://app.example.com',
90
- }
91
- );
92
-
93
- // Verify JWT
94
- const decoded = jwt.verify(token, process.env.JWT_PUBLIC_KEY, {
95
- algorithms: ['RS256'],
96
- issuer: 'https://api.example.com',
97
- audience: 'https://app.example.com',
98
- });
99
- ```
100
-
101
- ## Role-Based Access Control (RBAC)
102
-
103
- ### RBAC Model
104
-
105
- ```
106
- Users → Roles → Permissions → Resources
107
- ```
108
-
109
- ### Implementation (NestJS Example)
110
-
111
- ```typescript
112
- // Define roles
113
- export enum Role {
114
- ADMIN = 'admin',
115
- EDITOR = 'editor',
116
- VIEWER = 'viewer',
117
- }
118
-
119
- // Role decorator
120
- export const Roles = (...roles: Role[]) => SetMetadata('roles', roles);
121
-
122
- // Guard implementation
123
- @Injectable()
124
- export class RolesGuard implements CanActivate {
125
- constructor(private reflector: Reflector) {}
126
-
127
- canActivate(context: ExecutionContext): boolean {
128
- const requiredRoles = this.reflector.get<Role[]>('roles', context.getHandler());
129
- if (!requiredRoles) return true;
130
-
131
- const request = context.switchToHttp().getRequest();
132
- const user = request.user;
133
-
134
- return requiredRoles.some((role) => user.roles?.includes(role));
135
- }
136
- }
137
-
138
- // Usage
139
- @Post()
140
- @UseGuards(JwtAuthGuard, RolesGuard)
141
- @Roles(Role.ADMIN, Role.EDITOR)
142
- async createPost(@Body() createPostDto: CreatePostDto) {
143
- return this.postsService.create(createPostDto);
144
- }
145
- ```
146
-
147
- ### RBAC Best Practices
148
-
149
- 1. **Deny by default** - Explicitly grant permissions
150
- 2. **Least privilege** - Minimum permissions needed
151
- 3. **Role hierarchy** - Admin inherits Editor inherits Viewer
152
- 4. **Separate roles and permissions** - Flexible permission assignment
153
- 5. **Audit trail** - Log role changes and access
154
-
155
- ## Multi-Factor Authentication (MFA)
156
-
157
- ### TOTP (Time-Based One-Time Password)
158
-
159
- ```typescript
160
- import speakeasy from 'speakeasy';
161
- import QRCode from 'qrcode';
162
-
163
- // Generate secret
164
- const secret = speakeasy.generateSecret({
165
- name: 'MyApp',
166
- issuer: 'MyCompany',
167
- });
168
-
169
- // Generate QR code for user
170
- const qrCode = await QRCode.toDataURL(secret.otpauth_url);
171
-
172
- // Verify TOTP token
173
- const verified = speakeasy.totp.verify({
174
- secret: secret.base32,
175
- encoding: 'base32',
176
- token: userToken,
177
- window: 2, // Allow 2 time steps drift
178
- });
179
- ```
180
-
181
- ### FIDO2/WebAuthn (Passwordless - 2025 Standard)
182
-
183
- **Benefits:**
184
- - Phishing-resistant
185
- - No shared secrets
186
- - Hardware-backed security
187
- - Better UX (biometrics, security keys)
188
-
189
- **Implementation:**
190
- ```typescript
191
- // Registration
192
- const publicKeyCredentialCreationOptions = {
193
- challenge: crypto.randomBytes(32),
194
- rp: { name: 'MyApp', id: 'example.com' },
195
- user: {
196
- id: Buffer.from(user.id),
197
- name: user.email,
198
- displayName: user.name,
199
- },
200
- pubKeyCredParams: [{ alg: -7, type: 'public-key' }], // ES256
201
- authenticatorSelection: {
202
- authenticatorAttachment: 'platform', // 'platform' or 'cross-platform'
203
- userVerification: 'required',
204
- },
205
- timeout: 60000,
206
- attestation: 'direct',
207
- };
208
-
209
- // Use @simplewebauthn/server library
210
- import { verifyRegistrationResponse, verifyAuthenticationResponse } from '@simplewebauthn/server';
211
- ```
212
-
213
- ## Session Management
214
-
215
- ### Best Practices
216
-
217
- 1. **Secure cookies** - HttpOnly, Secure, SameSite=Strict
218
- 2. **Session timeout** - Idle: 15 minutes, Absolute: 8 hours
219
- 3. **Regenerate session ID** - After login, privilege elevation
220
- 4. **Server-side storage** - Redis for distributed systems
221
- 5. **CSRF protection** - SameSite cookies + CSRF tokens
222
-
223
- ### Implementation
224
-
225
- ```typescript
226
- import session from 'express-session';
227
- import RedisStore from 'connect-redis';
228
- import { createClient } from 'redis';
229
-
230
- const redisClient = createClient();
231
- await redisClient.connect();
232
-
233
- app.use(
234
- session({
235
- store: new RedisStore({ client: redisClient }),
236
- secret: process.env.SESSION_SECRET,
237
- resave: false,
238
- saveUninitialized: false,
239
- cookie: {
240
- secure: true, // HTTPS only
241
- httpOnly: true, // No JavaScript access
242
- sameSite: 'strict', // CSRF protection
243
- maxAge: 1000 * 60 * 15, // 15 minutes
244
- },
245
- })
246
- );
247
- ```
248
-
249
- ## Password Security
250
-
251
- ### Argon2id (2025 Standard - Replaces bcrypt)
252
-
253
- **Why Argon2id:**
254
- - Winner of Password Hashing Competition (2015)
255
- - Memory-hard (resistant to GPU/ASIC attacks)
256
- - Configurable CPU and memory cost
257
- - Combines Argon2i (data-independent) + Argon2d (data-dependent)
258
-
259
- ```typescript
260
- import argon2 from 'argon2';
261
-
262
- // Hash password
263
- const hash = await argon2.hash('password123', {
264
- type: argon2.argon2id,
265
- memoryCost: 65536, // 64 MB
266
- timeCost: 3, // 3 iterations
267
- parallelism: 4, // 4 threads
268
- });
269
-
270
- // Verify password
271
- const valid = await argon2.verify(hash, 'password123');
272
- ```
273
-
274
- ### Password Policy (2025 NIST Guidelines)
275
-
276
- - **Minimum length:** 12 characters (not 8)
277
- - **No composition rules** - Allow passphrases
278
- - **Check against breach databases** - HaveIBeenPwned API
279
- - **No periodic rotation** - Only on compromise
280
- - **Allow all printable characters** - Including spaces, emojis
281
-
282
- ## API Key Authentication
283
-
284
- ### Best Practices
285
-
286
- 1. **Prefix keys** - `sk_live_`, `pk_test_` (identify type/environment)
287
- 2. **Hash stored keys** - Store SHA-256 hash, not plaintext
288
- 3. **Key rotation** - Allow users to rotate keys
289
- 4. **Scope limiting** - Separate keys for read/write operations
290
- 5. **Rate limiting** - Per API key limits
291
-
292
- ```typescript
293
- // Generate API key
294
- const apiKey = `sk_${env}_${crypto.randomBytes(24).toString('base64url')}`;
295
-
296
- // Store hashed version
297
- const hashedKey = crypto.createHash('sha256').update(apiKey).digest('hex');
298
- await db.apiKeys.create({ userId, hashedKey, scopes: ['read'] });
299
-
300
- // Validate API key
301
- const providedHash = crypto.createHash('sha256').update(providedKey).digest('hex');
302
- const keyRecord = await db.apiKeys.findOne({ hashedKey: providedHash });
303
- ```
304
-
305
- ## Authentication Decision Matrix
306
-
307
- | Use Case | Recommended Approach |
308
- |----------|---------------------|
309
- | Web application | OAuth 2.1 + JWT |
310
- | Mobile app | OAuth 2.1 + PKCE |
311
- | SPA (Single Page App) | OAuth 2.1 Authorization Code + PKCE |
312
- | Server-to-server | Client credentials grant + mTLS |
313
- | Third-party API access | API keys with scopes |
314
- | High-security | WebAuthn/FIDO2 + MFA |
315
- | Internal admin | JWT + RBAC + MFA |
316
- | Microservices | Service mesh (mTLS) + JWT |
317
-
318
- ## Security Checklist
319
-
320
- - [ ] OAuth 2.1 with PKCE implemented
321
- - [ ] JWT tokens expire in 15 minutes
322
- - [ ] Refresh token rotation enabled
323
- - [ ] RBAC with deny-by-default
324
- - [ ] MFA required for admin accounts
325
- - [ ] Passwords hashed with Argon2id
326
- - [ ] Session cookies: HttpOnly, Secure, SameSite
327
- - [ ] Rate limiting on auth endpoints (10 attempts/15 min)
328
- - [ ] Account lockout after failed attempts
329
- - [ ] Password policy: 12+ chars, breach check
330
- - [ ] Audit logging for authentication events
331
-
332
- ## Resources
333
-
334
- - **OAuth 2.1:** https://oauth.net/2.1/
335
- - **JWT Best Practices:** https://datatracker.ietf.org/doc/html/rfc8725
336
- - **WebAuthn:** https://webauthn.guide/
337
- - **NIST Password Guidelines:** https://pages.nist.gov/800-63-3/
338
- - **OWASP Auth Cheat Sheet:** https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
1
+ # Backend Authentication & Authorization
2
+
3
+ Modern authentication patterns including OAuth 2.1, JWT, RBAC, and MFA (2025 standards).
4
+
5
+ ## OAuth 2.1 (2025 Standard)
6
+
7
+ ### Key Changes from OAuth 2.0
8
+
9
+ **Mandatory:**
10
+ - PKCE (Proof Key for Code Exchange) for all clients
11
+ - Exact redirect URI matching
12
+ - State parameter for CSRF protection
13
+
14
+ **Deprecated:**
15
+ - Implicit grant flow (security risk)
16
+ - Resource owner password credentials grant
17
+ - Bearer token in query strings
18
+
19
+ ### Authorization Code Flow with PKCE
20
+
21
+ ```typescript
22
+ // Step 1: Generate code verifier and challenge
23
+ import crypto from 'crypto';
24
+
25
+ const codeVerifier = crypto.randomBytes(32).toString('base64url');
26
+ const codeChallenge = crypto
27
+ .createHash('sha256')
28
+ .update(codeVerifier)
29
+ .digest('base64url');
30
+
31
+ // Step 2: Redirect to authorization endpoint
32
+ const authUrl = new URL('https://auth.example.com/authorize');
33
+ authUrl.searchParams.set('client_id', 'your-client-id');
34
+ authUrl.searchParams.set('redirect_uri', 'https://app.example.com/callback');
35
+ authUrl.searchParams.set('response_type', 'code');
36
+ authUrl.searchParams.set('scope', 'openid profile email');
37
+ authUrl.searchParams.set('state', crypto.randomBytes(16).toString('hex'));
38
+ authUrl.searchParams.set('code_challenge', codeChallenge);
39
+ authUrl.searchParams.set('code_challenge_method', 'S256');
40
+
41
+ // Step 3: Exchange code for token (with code_verifier)
42
+ const tokenResponse = await fetch('https://auth.example.com/token', {
43
+ method: 'POST',
44
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
45
+ body: new URLSearchParams({
46
+ grant_type: 'authorization_code',
47
+ code: authCode,
48
+ redirect_uri: redirectUri,
49
+ client_id: clientId,
50
+ code_verifier: codeVerifier,
51
+ }),
52
+ });
53
+ ```
54
+
55
+ ## JWT (JSON Web Tokens)
56
+
57
+ ### Structure
58
+
59
+ ```
60
+ Header.Payload.Signature
61
+ eyJhbGciOi... . eyJzdWIiOi... . SflKxwRJ...
62
+ ```
63
+
64
+ ### Best Practices (2025)
65
+
66
+ 1. **Short expiration** - Access tokens: 15 minutes, Refresh tokens: 7 days
67
+ 2. **Use RS256** - Asymmetric signing (not HS256 for public APIs)
68
+ 3. **Validate everything** - Signature, issuer, audience, expiration
69
+ 4. **Include minimal claims** - Don't include sensitive data
70
+ 5. **Refresh token rotation** - Issue new refresh token on each use
71
+
72
+ ### Implementation (ASP.NET Core)
73
+
74
+ ```csharp
75
+ // Program.cs - JWT configuration with best practices
76
+ using Microsoft.AspNetCore.Authentication.JwtBearer;
77
+ using Microsoft.IdentityModel.Tokens;
78
+
79
+ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
80
+ .AddJwtBearer(options =>
81
+ {
82
+ options.TokenValidationParameters = new TokenValidationParameters
83
+ {
84
+ ValidateIssuer = true,
85
+ ValidateAudience = true,
86
+ ValidateLifetime = true,
87
+ ValidateIssuerSigningKey = true,
88
+ RequireExpirationTime = true,
89
+ ClockSkew = TimeSpan.FromMinutes(1), // Reduce default 5-min skew
90
+ ValidIssuer = builder.Configuration["Jwt:Issuer"],
91
+ ValidAudience = builder.Configuration["Jwt:Audience"],
92
+ IssuerSigningKey = new SymmetricSecurityKey(
93
+ Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]!))
94
+ };
95
+
96
+ options.Events = new JwtBearerEvents
97
+ {
98
+ OnAuthenticationFailed = context =>
99
+ {
100
+ if (context.Exception is SecurityTokenExpiredException)
101
+ context.Response.Headers.Add("Token-Expired", "true");
102
+ return Task.CompletedTask;
103
+ }
104
+ };
105
+ });
106
+
107
+ // Generate JWT token
108
+ public string GenerateToken(User user)
109
+ {
110
+ var claims = new[]
111
+ {
112
+ new Claim(JwtRegisteredClaimNames.Sub, user.Id),
113
+ new Claim(JwtRegisteredClaimNames.Email, user.Email),
114
+ new Claim(ClaimTypes.Role, user.Role),
115
+ new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
116
+ };
117
+
118
+ var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]!));
119
+ var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
120
+
121
+ var token = new JwtSecurityToken(
122
+ issuer: _config["Jwt:Issuer"],
123
+ audience: _config["Jwt:Audience"],
124
+ claims: claims,
125
+ expires: DateTime.UtcNow.AddMinutes(15), // Short-lived access token
126
+ signingCredentials: creds);
127
+
128
+ return new JwtSecurityTokenHandler().WriteToken(token);
129
+ }
130
+ ```
131
+
132
+ ### Implementation (Node.js/TypeScript)
133
+
134
+ ```typescript
135
+ import jwt from 'jsonwebtoken';
136
+
137
+ // Generate JWT
138
+ const accessToken = jwt.sign(
139
+ {
140
+ sub: user.id,
141
+ email: user.email,
142
+ roles: user.roles,
143
+ },
144
+ process.env.JWT_PRIVATE_KEY,
145
+ {
146
+ algorithm: 'RS256',
147
+ expiresIn: '15m',
148
+ issuer: 'https://api.example.com',
149
+ audience: 'https://app.example.com',
150
+ }
151
+ );
152
+
153
+ // Verify JWT
154
+ const decoded = jwt.verify(token, process.env.JWT_PUBLIC_KEY, {
155
+ algorithms: ['RS256'],
156
+ issuer: 'https://api.example.com',
157
+ audience: 'https://app.example.com',
158
+ });
159
+ ```
160
+
161
+ ## Role-Based Access Control (RBAC)
162
+
163
+ ### RBAC Model
164
+
165
+ ```
166
+ Users → Roles → Permissions → Resources
167
+ ```
168
+
169
+ ### Implementation (NestJS Example)
170
+
171
+ ```typescript
172
+ // Define roles
173
+ export enum Role {
174
+ ADMIN = 'admin',
175
+ EDITOR = 'editor',
176
+ VIEWER = 'viewer',
177
+ }
178
+
179
+ // Role decorator
180
+ export const Roles = (...roles: Role[]) => SetMetadata('roles', roles);
181
+
182
+ // Guard implementation
183
+ @Injectable()
184
+ export class RolesGuard implements CanActivate {
185
+ constructor(private reflector: Reflector) {}
186
+
187
+ canActivate(context: ExecutionContext): boolean {
188
+ const requiredRoles = this.reflector.get<Role[]>('roles', context.getHandler());
189
+ if (!requiredRoles) return true;
190
+
191
+ const request = context.switchToHttp().getRequest();
192
+ const user = request.user;
193
+
194
+ return requiredRoles.some((role) => user.roles?.includes(role));
195
+ }
196
+ }
197
+
198
+ // Usage
199
+ @Post()
200
+ @UseGuards(JwtAuthGuard, RolesGuard)
201
+ @Roles(Role.ADMIN, Role.EDITOR)
202
+ async createPost(@Body() createPostDto: CreatePostDto) {
203
+ return this.postsService.create(createPostDto);
204
+ }
205
+ ```
206
+
207
+ ### Implementation (ASP.NET Core Example)
208
+
209
+ ```csharp
210
+ // Define roles
211
+ public static class Roles
212
+ {
213
+ public const string Admin = "admin";
214
+ public const string Editor = "editor";
215
+ public const string Viewer = "viewer";
216
+ }
217
+
218
+ // Authorization policy
219
+ builder.Services.AddAuthorization(options =>
220
+ {
221
+ options.AddPolicy("RequireAdminOrEditor", policy =>
222
+ policy.RequireRole(Roles.Admin, Roles.Editor));
223
+ });
224
+
225
+ // Usage in controller
226
+ [Authorize(Policy = "RequireAdminOrEditor")]
227
+ [HttpPost]
228
+ public async Task<IActionResult> CreatePost([FromBody] CreatePostDto dto)
229
+ {
230
+ return Ok(await _postsService.CreateAsync(dto));
231
+ }
232
+
233
+ // Or use attribute-based authorization
234
+ [Authorize(Roles = "admin,editor")]
235
+ [HttpPost]
236
+ public async Task<IActionResult> CreatePost([FromBody] CreatePostDto dto)
237
+ {
238
+ return Ok(await _postsService.CreateAsync(dto));
239
+ }
240
+ ```
241
+
242
+ ### RBAC Best Practices
243
+
244
+ 1. **Deny by default** - Explicitly grant permissions
245
+ 2. **Least privilege** - Minimum permissions needed
246
+ 3. **Role hierarchy** - Admin inherits Editor inherits Viewer
247
+ 4. **Separate roles and permissions** - Flexible permission assignment
248
+ 5. **Audit trail** - Log role changes and access
249
+
250
+ ## Multi-Factor Authentication (MFA)
251
+
252
+ ### TOTP (Time-Based One-Time Password)
253
+
254
+ ```typescript
255
+ import speakeasy from 'speakeasy';
256
+ import QRCode from 'qrcode';
257
+
258
+ // Generate secret
259
+ const secret = speakeasy.generateSecret({
260
+ name: 'MyApp',
261
+ issuer: 'MyCompany',
262
+ });
263
+
264
+ // Generate QR code for user
265
+ const qrCode = await QRCode.toDataURL(secret.otpauth_url);
266
+
267
+ // Verify TOTP token
268
+ const verified = speakeasy.totp.verify({
269
+ secret: secret.base32,
270
+ encoding: 'base32',
271
+ token: userToken,
272
+ window: 2, // Allow 2 time steps drift
273
+ });
274
+ ```
275
+
276
+ ### FIDO2/WebAuthn (Passwordless - 2025 Standard)
277
+
278
+ **Benefits:**
279
+ - Phishing-resistant
280
+ - No shared secrets
281
+ - Hardware-backed security
282
+ - Better UX (biometrics, security keys)
283
+
284
+ **Implementation:**
285
+ ```typescript
286
+ // Registration
287
+ const publicKeyCredentialCreationOptions = {
288
+ challenge: crypto.randomBytes(32),
289
+ rp: { name: 'MyApp', id: 'example.com' },
290
+ user: {
291
+ id: Buffer.from(user.id),
292
+ name: user.email,
293
+ displayName: user.name,
294
+ },
295
+ pubKeyCredParams: [{ alg: -7, type: 'public-key' }], // ES256
296
+ authenticatorSelection: {
297
+ authenticatorAttachment: 'platform', // 'platform' or 'cross-platform'
298
+ userVerification: 'required',
299
+ },
300
+ timeout: 60000,
301
+ attestation: 'direct',
302
+ };
303
+
304
+ // Use @simplewebauthn/server library
305
+ import { verifyRegistrationResponse, verifyAuthenticationResponse } from '@simplewebauthn/server';
306
+ ```
307
+
308
+ ## Session Management
309
+
310
+ ### Best Practices
311
+
312
+ 1. **Secure cookies** - HttpOnly, Secure, SameSite=Strict
313
+ 2. **Session timeout** - Idle: 15 minutes, Absolute: 8 hours
314
+ 3. **Regenerate session ID** - After login, privilege elevation
315
+ 4. **Server-side storage** - Redis for distributed systems
316
+ 5. **CSRF protection** - SameSite cookies + CSRF tokens
317
+
318
+ ### Implementation
319
+
320
+ ```typescript
321
+ import session from 'express-session';
322
+ import RedisStore from 'connect-redis';
323
+ import { createClient } from 'redis';
324
+
325
+ const redisClient = createClient();
326
+ await redisClient.connect();
327
+
328
+ app.use(
329
+ session({
330
+ store: new RedisStore({ client: redisClient }),
331
+ secret: process.env.SESSION_SECRET,
332
+ resave: false,
333
+ saveUninitialized: false,
334
+ cookie: {
335
+ secure: true, // HTTPS only
336
+ httpOnly: true, // No JavaScript access
337
+ sameSite: 'strict', // CSRF protection
338
+ maxAge: 1000 * 60 * 15, // 15 minutes
339
+ },
340
+ })
341
+ );
342
+ ```
343
+
344
+ ## Password Security
345
+
346
+ ### Argon2id (2025 Standard - Replaces bcrypt)
347
+
348
+ **Why Argon2id:**
349
+ - Winner of Password Hashing Competition (2015)
350
+ - Memory-hard (resistant to GPU/ASIC attacks)
351
+ - Configurable CPU and memory cost
352
+ - Combines Argon2i (data-independent) + Argon2d (data-dependent)
353
+
354
+ ```typescript
355
+ import argon2 from 'argon2';
356
+
357
+ // Hash password
358
+ const hash = await argon2.hash('password123', {
359
+ type: argon2.argon2id,
360
+ memoryCost: 65536, // 64 MB
361
+ timeCost: 3, // 3 iterations
362
+ parallelism: 4, // 4 threads
363
+ });
364
+
365
+ // Verify password
366
+ const valid = await argon2.verify(hash, 'password123');
367
+ ```
368
+
369
+ ### Password Policy (2025 NIST Guidelines)
370
+
371
+ - **Minimum length:** 12 characters (not 8)
372
+ - **No composition rules** - Allow passphrases
373
+ - **Check against breach databases** - HaveIBeenPwned API
374
+ - **No periodic rotation** - Only on compromise
375
+ - **Allow all printable characters** - Including spaces, emojis
376
+
377
+ ## API Key Authentication
378
+
379
+ ### Best Practices
380
+
381
+ 1. **Prefix keys** - `sk_live_`, `pk_test_` (identify type/environment)
382
+ 2. **Hash stored keys** - Store SHA-256 hash, not plaintext
383
+ 3. **Key rotation** - Allow users to rotate keys
384
+ 4. **Scope limiting** - Separate keys for read/write operations
385
+ 5. **Rate limiting** - Per API key limits
386
+
387
+ ```typescript
388
+ // Generate API key
389
+ const apiKey = `sk_${env}_${crypto.randomBytes(24).toString('base64url')}`;
390
+
391
+ // Store hashed version
392
+ const hashedKey = crypto.createHash('sha256').update(apiKey).digest('hex');
393
+ await db.apiKeys.create({ userId, hashedKey, scopes: ['read'] });
394
+
395
+ // Validate API key
396
+ const providedHash = crypto.createHash('sha256').update(providedKey).digest('hex');
397
+ const keyRecord = await db.apiKeys.findOne({ hashedKey: providedHash });
398
+ ```
399
+
400
+ ## Authentication Decision Matrix
401
+
402
+ | Use Case | Recommended Approach |
403
+ |----------|---------------------|
404
+ | Web application | OAuth 2.1 + JWT |
405
+ | Mobile app | OAuth 2.1 + PKCE |
406
+ | SPA (Single Page App) | OAuth 2.1 Authorization Code + PKCE |
407
+ | Server-to-server | Client credentials grant + mTLS |
408
+ | Third-party API access | API keys with scopes |
409
+ | High-security | WebAuthn/FIDO2 + MFA |
410
+ | Internal admin | JWT + RBAC + MFA |
411
+ | Microservices | Service mesh (mTLS) + JWT |
412
+
413
+ ## Security Checklist
414
+
415
+ - [ ] OAuth 2.1 with PKCE implemented
416
+ - [ ] JWT tokens expire in 15 minutes
417
+ - [ ] Refresh token rotation enabled
418
+ - [ ] RBAC with deny-by-default
419
+ - [ ] MFA required for admin accounts
420
+ - [ ] Passwords hashed with Argon2id
421
+ - [ ] Session cookies: HttpOnly, Secure, SameSite
422
+ - [ ] Rate limiting on auth endpoints (10 attempts/15 min)
423
+ - [ ] Account lockout after failed attempts
424
+ - [ ] Password policy: 12+ chars, breach check
425
+ - [ ] Audit logging for authentication events
426
+
427
+ ## Resources
428
+
429
+ - **OAuth 2.1:** https://oauth.net/2.1/
430
+ - **JWT Best Practices:** https://datatracker.ietf.org/doc/html/rfc8725
431
+ - **WebAuthn:** https://webauthn.guide/
432
+ - **NIST Password Guidelines:** https://pages.nist.gov/800-63-3/
433
+ - **OWASP Auth Cheat Sheet:** https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html