@kensaurus/skills 0.0.0-stage → 2.1.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 (425) hide show
  1. package/.claude-plugin/marketplace.json +53 -0
  2. package/.claude-plugin/plugin.json +40 -0
  3. package/.cursor-plugin/plugin.json +38 -0
  4. package/.mcp.json +28 -0
  5. package/CHANGELOG.md +1790 -0
  6. package/LICENSE +21 -0
  7. package/LICENSE-APACHE +62 -0
  8. package/NOTICE +13 -0
  9. package/README.md +821 -2
  10. package/SECURITY.md +55 -0
  11. package/agents/code-reviewer.md +60 -0
  12. package/agents/completion-judge.md +89 -0
  13. package/agents/db-migrator.md +125 -0
  14. package/agents/debugger.md +47 -0
  15. package/agents/deploy-checker.md +100 -0
  16. package/agents/perf-monitor.md +74 -0
  17. package/assets/favicon.png +0 -0
  18. package/assets/logo-light.png +0 -0
  19. package/assets/logo.png +0 -0
  20. package/assets/logo.svg +6 -0
  21. package/assets/og.png +0 -0
  22. package/bin/install.mjs +1127 -0
  23. package/bin/kenji.js +2 -0
  24. package/commands/adr.md +17 -0
  25. package/commands/aeo-plan.md +18 -0
  26. package/commands/arch-boundaries.md +17 -0
  27. package/commands/aso-plan.md +18 -0
  28. package/commands/auth-flows.md +19 -0
  29. package/commands/backup-plan.md +17 -0
  30. package/commands/burndown-full.md +25 -0
  31. package/commands/capacitor-plan.md +18 -0
  32. package/commands/codemod-safety.md +22 -0
  33. package/commands/commit.md +18 -0
  34. package/commands/complete-everything.md +40 -0
  35. package/commands/cost-plan.md +19 -0
  36. package/commands/deadcode-plan.md +26 -0
  37. package/commands/deadcode.md +32 -0
  38. package/commands/debug-issue.md +17 -0
  39. package/commands/deps-plan.md +18 -0
  40. package/commands/docs-plan.md +17 -0
  41. package/commands/doctrine.md +19 -0
  42. package/commands/error-plan.md +19 -0
  43. package/commands/feedback-to-closure.md +36 -0
  44. package/commands/fix-issue.md +76 -0
  45. package/commands/gate-logic.md +26 -0
  46. package/commands/green-repo.md +36 -0
  47. package/commands/grill-me.md +19 -0
  48. package/commands/gtm-plan.md +21 -0
  49. package/commands/gtm-weekly.md +17 -0
  50. package/commands/gtm.md +22 -0
  51. package/commands/handoff.md +15 -0
  52. package/commands/housekeep-backlog.md +18 -0
  53. package/commands/housekeep-files.md +22 -0
  54. package/commands/housekeep-gates.md +18 -0
  55. package/commands/instant-nav.md +11 -0
  56. package/commands/integrity-plan.md +19 -0
  57. package/commands/launch-kit.md +16 -0
  58. package/commands/mcp-guide.md +40 -0
  59. package/commands/mobile-plan.md +19 -0
  60. package/commands/native-rn-monorepo/README.md +78 -0
  61. package/commands/native-rn-monorepo/android-build.md +26 -0
  62. package/commands/native-rn-monorepo/android-install.md +32 -0
  63. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  64. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  65. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  66. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  67. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  68. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  69. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  70. package/commands/perf-plan.md +18 -0
  71. package/commands/plan-mode.md +74 -0
  72. package/commands/pr.md +16 -0
  73. package/commands/pricing-plan.md +20 -0
  74. package/commands/privacy-plan.md +18 -0
  75. package/commands/readability.md +12 -0
  76. package/commands/readme.md +15 -0
  77. package/commands/refactor.md +15 -0
  78. package/commands/release-prep.md +17 -0
  79. package/commands/research.md +25 -0
  80. package/commands/responsive-audit.md +21 -0
  81. package/commands/review-code.md +18 -0
  82. package/commands/rls-plan.md +18 -0
  83. package/commands/secrets-plan.md +18 -0
  84. package/commands/security-plan.md +19 -0
  85. package/commands/ship-and-observe.md +36 -0
  86. package/commands/skill-conflicts.md +19 -0
  87. package/commands/slop-plan.md +18 -0
  88. package/commands/stub-plan.md +18 -0
  89. package/commands/test-mutation.md +16 -0
  90. package/commands/test-plan.md +17 -0
  91. package/commands/test.md +29 -0
  92. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  93. package/commands/uiux-plan.md +18 -0
  94. package/commands/uiux.md +45 -0
  95. package/commands/update-deps.md +21 -0
  96. package/commands/validation-plan.md +19 -0
  97. package/commands-portable/fix-issue.md +72 -0
  98. package/commands-portable/plan-mode.md +92 -0
  99. package/commands-portable/research.md +91 -0
  100. package/docs/screenshots/README.md +5 -0
  101. package/docs/screenshots/audit-dark.png +0 -0
  102. package/docs/screenshots/build-dark.png +0 -0
  103. package/docs/screenshots/grill-dark.png +0 -0
  104. package/docs/screenshots/hero-dark.png +0 -0
  105. package/docs/screenshots/hero-light.png +0 -0
  106. package/docs/screenshots/ship-dark.png +0 -0
  107. package/docs/screenshots/src/showcase.html +320 -0
  108. package/hooks/completion-gate.mjs +258 -0
  109. package/hooks/cursor-hooks.json +13 -0
  110. package/hooks/hooks.json +15 -0
  111. package/install.sh +21 -0
  112. package/llms.txt +40 -0
  113. package/mcp/README.md +266 -0
  114. package/mcp/VERSIONS.md +41 -0
  115. package/mcp/mcp-full.json.template +124 -0
  116. package/mcp/mcp.json.template +29 -0
  117. package/mcp/pinned-versions.json +27 -0
  118. package/package.json +94 -4
  119. package/rules/approved-plan-execution.mdc +65 -0
  120. package/rules/full-stack-ship-discipline.mdc +37 -0
  121. package/rules/native-rn-monorepo/README.md +63 -0
  122. package/rules/native-rn-monorepo/_project.mdc +69 -0
  123. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  124. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  125. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  126. package/rules/native-rn-monorepo/web.mdc +60 -0
  127. package/rules/project-starter/components.mdc +54 -0
  128. package/rules/project-starter/data-fetching.mdc +77 -0
  129. package/rules/project-starter/git.mdc +41 -0
  130. package/rules/project-starter/supabase.mdc +37 -0
  131. package/rules/project-starter/tailwind.mdc +48 -0
  132. package/rules/project-starter/typescript.mdc +36 -0
  133. package/rules/project-starter/web-performance.mdc +42 -0
  134. package/rules/senior-engineer.mdc +30 -0
  135. package/rules/shell-first-search.mdc +19 -0
  136. package/rules/skill-workflows.mdc +35 -0
  137. package/rules/verification-before-completion.mdc +57 -0
  138. package/skills/audit-accessibility/SKILL.md +441 -0
  139. package/skills/audit-agent-speed/SKILL.md +181 -0
  140. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  141. package/skills/audit-analytics/SKILL.md +138 -0
  142. package/skills/audit-auth-flows/SKILL.md +267 -0
  143. package/skills/audit-backend-architecture/SKILL.md +266 -0
  144. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  145. package/skills/audit-bundle-size/SKILL.md +295 -0
  146. package/skills/audit-cicd/SKILL.md +218 -0
  147. package/skills/audit-code-quality/SKILL.md +314 -0
  148. package/skills/audit-code-review/SKILL.md +289 -0
  149. package/skills/audit-codemod-safety/SKILL.md +159 -0
  150. package/skills/audit-db-schema/SKILL.md +465 -0
  151. package/skills/audit-db-schema/references/details.md +110 -0
  152. package/skills/audit-doctrine/SKILL.md +189 -0
  153. package/skills/audit-env-parity/SKILL.md +133 -0
  154. package/skills/audit-fe-api/SKILL.md +458 -0
  155. package/skills/audit-gate-logic/SKILL.md +219 -0
  156. package/skills/audit-i18n/SKILL.md +339 -0
  157. package/skills/audit-infra-cost/SKILL.md +142 -0
  158. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  159. package/skills/audit-langfuse-llm/references/details.md +226 -0
  160. package/skills/audit-llm-security/SKILL.md +147 -0
  161. package/skills/audit-monetization-iap/SKILL.md +137 -0
  162. package/skills/audit-payment-system/SKILL.md +268 -0
  163. package/skills/audit-payment-system/references/checklist.md +283 -0
  164. package/skills/audit-performance/SKILL.md +383 -0
  165. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  166. package/skills/audit-realworld/SKILL.md +287 -0
  167. package/skills/audit-registry-listing/SKILL.md +122 -0
  168. package/skills/audit-resilience/SKILL.md +153 -0
  169. package/skills/audit-responsive/SKILL.md +221 -0
  170. package/skills/audit-responsive/references/checklist.md +166 -0
  171. package/skills/audit-security/SKILL.md +289 -0
  172. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  173. package/skills/audit-ui-states/SKILL.md +146 -0
  174. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  175. package/skills/audit-uiux-design-system/references/details.md +71 -0
  176. package/skills/audit-ux/SKILL.md +381 -0
  177. package/skills/audit-ux/references/details.md +245 -0
  178. package/skills/audit-ux-journeys/SKILL.md +215 -0
  179. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  180. package/skills/backend-db-performance/SKILL.md +441 -0
  181. package/skills/backend-error-handling/SKILL.md +489 -0
  182. package/skills/backend-error-handling/references/details.md +58 -0
  183. package/skills/backend-observability/SKILL.md +88 -0
  184. package/skills/backend-patterns/SKILL.md +499 -0
  185. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  186. package/skills/backend-realtime/SKILL.md +403 -0
  187. package/skills/backend-realtime/references/patterns.md +74 -0
  188. package/skills/burndown-full/SKILL.md +174 -0
  189. package/skills/complete-everything/SKILL.md +295 -0
  190. package/skills/data-pipeline/SKILL.md +109 -0
  191. package/skills/data-visualization/SKILL.md +488 -0
  192. package/skills/debug-error/SKILL.md +322 -0
  193. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  194. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  195. package/skills/debug-sentry-monitor/references/details.md +165 -0
  196. package/skills/deploy-npm/SKILL.md +394 -0
  197. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  198. package/skills/deploy-verify/SKILL.md +489 -0
  199. package/skills/design-api/SKILL.md +379 -0
  200. package/skills/design-canvas/SKILL.md +155 -0
  201. package/skills/design-email/SKILL.md +370 -0
  202. package/skills/design-frontend/SKILL.md +143 -0
  203. package/skills/design-generative-art/SKILL.md +474 -0
  204. package/skills/design-mobile-first/SKILL.md +506 -0
  205. package/skills/design-motion/SKILL.md +333 -0
  206. package/skills/design-motion/references/delight-interactions.md +191 -0
  207. package/skills/design-prd/SKILL.md +443 -0
  208. package/skills/design-system/SKILL.md +457 -0
  209. package/skills/design-theme/SKILL.md +226 -0
  210. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  211. package/skills/docs-adr/SKILL.md +168 -0
  212. package/skills/docs-coauthor/SKILL.md +368 -0
  213. package/skills/docs-comparison-pages/SKILL.md +117 -0
  214. package/skills/docs-domain-modeling/SKILL.md +97 -0
  215. package/skills/docs-launch-kit/SKILL.md +139 -0
  216. package/skills/docs-writer/SKILL.md +469 -0
  217. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  218. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  219. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  220. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  221. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  222. package/skills/enhance-growth-loops/SKILL.md +122 -0
  223. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  224. package/skills/enhance-motion/SKILL.md +193 -0
  225. package/skills/enhance-onboarding/SKILL.md +148 -0
  226. package/skills/enhance-pwa/SKILL.md +303 -0
  227. package/skills/enhance-readability/SKILL.md +146 -0
  228. package/skills/enhance-readme/SKILL.md +496 -0
  229. package/skills/enhance-readme/package-lock.json +187 -0
  230. package/skills/enhance-readme/package.json +17 -0
  231. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  232. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  233. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  234. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  235. package/skills/enhance-ux-laws/SKILL.md +409 -0
  236. package/skills/enhance-web-conversion/SKILL.md +155 -0
  237. package/skills/enhance-web-forms/SKILL.md +154 -0
  238. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  239. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  240. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  241. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  242. package/skills/enhance-web-landing/SKILL.md +459 -0
  243. package/skills/enhance-web-landing/references/details.md +773 -0
  244. package/skills/enhance-web-redesign/SKILL.md +228 -0
  245. package/skills/enhance-web-seo/SKILL.md +276 -0
  246. package/skills/enhance-web-ui/SKILL.md +473 -0
  247. package/skills/enhance-web-ui/references/details.md +674 -0
  248. package/skills/enhance-web-ux/HEURISTICS.md +248 -0
  249. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  250. package/skills/enhance-web-ux/SKILL.md +464 -0
  251. package/skills/enhance-web-ux/examples.md +222 -0
  252. package/skills/enhance-web-ux/references/details.md +406 -0
  253. package/skills/enhance-web-web3d/SKILL.md +397 -0
  254. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  255. package/skills/handoff/SKILL.md +66 -0
  256. package/skills/housekeep-backlog/SKILL.md +149 -0
  257. package/skills/housekeep-dead-code/SKILL.md +387 -0
  258. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  259. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  260. package/skills/housekeep-design/SKILL.md +207 -0
  261. package/skills/housekeep-files/SKILL.md +220 -0
  262. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  263. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  264. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  265. package/skills/housekeep-gates/SKILL.md +174 -0
  266. package/skills/iterate-agent-harness/SKILL.md +137 -0
  267. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  268. package/skills/iterate-post-launch/SKILL.md +292 -0
  269. package/skills/meta-mcp-builder/SKILL.md +313 -0
  270. package/skills/meta-skill-creator/SKILL.md +304 -0
  271. package/skills/mobile-capacitor-platform/SKILL.md +103 -0
  272. package/skills/mobile-emulator-start/SKILL.md +296 -0
  273. package/skills/mobile-emulator-test/SKILL.md +491 -0
  274. package/skills/mobile-emulator-test/references/details.md +478 -0
  275. package/skills/mobile-rn-performance/SKILL.md +107 -0
  276. package/skills/mobile-rn-screen/SKILL.md +476 -0
  277. package/skills/mobile-rn-screen/references/details.md +785 -0
  278. package/skills/mushi-health/SKILL.md +206 -0
  279. package/skills/mushi-integration/SKILL.md +257 -0
  280. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  281. package/skills/plan-antislop/SKILL.md +281 -0
  282. package/skills/plan-aso/SKILL.md +149 -0
  283. package/skills/plan-backup-dr/SKILL.md +131 -0
  284. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  285. package/skills/plan-data-integrity/SKILL.md +187 -0
  286. package/skills/plan-dead-code/SKILL.md +386 -0
  287. package/skills/plan-dead-code/references/knip-config.md +214 -0
  288. package/skills/plan-dead-code/references/output-templates.md +133 -0
  289. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  290. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  291. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  292. package/skills/plan-docs-sync/SKILL.md +143 -0
  293. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  294. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  295. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  296. package/skills/plan-error-handling/SKILL.md +205 -0
  297. package/skills/plan-gtm/SKILL.md +276 -0
  298. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  299. package/skills/plan-input-validation/SKILL.md +179 -0
  300. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  301. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  302. package/skills/plan-perf-audit/SKILL.md +145 -0
  303. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  304. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  305. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  306. package/skills/plan-pricing/SKILL.md +173 -0
  307. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  308. package/skills/plan-rls-audit/SKILL.md +231 -0
  309. package/skills/plan-secrets-audit/SKILL.md +181 -0
  310. package/skills/plan-security-audit/SKILL.md +168 -0
  311. package/skills/plan-security-audit/references/output-templates.md +36 -0
  312. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  313. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  314. package/skills/plan-stub-checker/SKILL.md +216 -0
  315. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  316. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  317. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  318. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  319. package/skills/plan-test-coverage/SKILL.md +170 -0
  320. package/skills/plan-test-coverage/references/methodology.md +54 -0
  321. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  322. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  323. package/skills/plan-uiux-unification/SKILL.md +230 -0
  324. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  325. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  326. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  327. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  328. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  329. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  330. package/skills/research/SKILL.md +422 -0
  331. package/skills/test-exploratory/SKILL.md +165 -0
  332. package/skills/test-exploratory/references/charter-template.md +29 -0
  333. package/skills/test-load/SKILL.md +126 -0
  334. package/skills/test-mutation/SKILL.md +160 -0
  335. package/skills/test-playwright/SKILL.md +354 -0
  336. package/skills/test-qa/SKILL.md +364 -0
  337. package/skills/test-qa/references/details.md +268 -0
  338. package/skills/test-red-team/SKILL.md +386 -0
  339. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  340. package/skills/test-unit/SKILL.md +259 -0
  341. package/skills/test-unit/references/details.md +267 -0
  342. package/skills/test-visual-regression/SKILL.md +132 -0
  343. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  344. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  345. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  346. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  347. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  370. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  371. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  373. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  374. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  375. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  376. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  377. package/skills/workflow-build-feature/SKILL.md +118 -0
  378. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  379. package/skills/workflow-environment-ready/SKILL.md +128 -0
  380. package/skills/workflow-feature-flag/SKILL.md +262 -0
  381. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  382. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  383. package/skills/workflow-git-commit/SKILL.md +200 -0
  384. package/skills/workflow-green-repo/SKILL.md +166 -0
  385. package/skills/workflow-grilling/SKILL.md +73 -0
  386. package/skills/workflow-gtm/SKILL.md +153 -0
  387. package/skills/workflow-housekeep/SKILL.md +453 -0
  388. package/skills/workflow-housekeep/references/templates.md +109 -0
  389. package/skills/workflow-launch-ready/SKILL.md +145 -0
  390. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  391. package/skills/workflow-onboard/SKILL.md +99 -0
  392. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  393. package/skills/workflow-pr/SKILL.md +197 -0
  394. package/skills/workflow-quality-gate/SKILL.md +147 -0
  395. package/skills/workflow-refactor/SKILL.md +274 -0
  396. package/skills/workflow-release-prep/SKILL.md +207 -0
  397. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  398. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  399. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  400. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  401. package/skills-cursor/babysit/SKILL.md +17 -0
  402. package/skills-cursor/canvas/SKILL.md +142 -0
  403. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  404. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  405. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  406. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  407. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  408. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  409. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  410. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  411. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  412. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  413. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  414. package/skills-cursor/create-hook/SKILL.md +238 -0
  415. package/skills-cursor/create-rule/SKILL.md +185 -0
  416. package/skills-cursor/create-skill/SKILL.md +269 -0
  417. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  418. package/skills-cursor/create-subagent/SKILL.md +228 -0
  419. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  420. package/skills-cursor/shell/SKILL.md +22 -0
  421. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  422. package/skills-cursor/statusline/SKILL.md +193 -0
  423. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  424. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  425. package/skills.sh.json +297 -0
@@ -0,0 +1,292 @@
1
+ ---
2
+ name: iterate-post-launch
3
+ description: >
4
+ Close the feedback loop on a live app: read production signals, rank the top
5
+ issues, fix, verify live, repeat. Use when "post-launch polish", "fix the
6
+ top production issues", "iterate on feedback", or "what should I fix next
7
+ after launch?".
8
+ license: MIT
9
+ ---
10
+
11
+ # iterate-post-launch — Production Signal → Prioritised Fix Loop
12
+
13
+ **Degree of freedom: MIXED.** Triage and sprint plan `[HIGH freedom]`;
14
+ signal pulls, confirmation-before-edit, and live verify
15
+ `[LOW freedom — run exactly]`.
16
+
17
+ **You shipped. That is the beginning, not the end.** Real users hit real paths
18
+ you did not test. Sentry, Supabase logs, and the live UI tell you exactly what
19
+ to fix next — if you know how to read them. This skill turns those signals into
20
+ a ranked, actionable improvement plan and then implements it.
21
+
22
+ > **Plan → Signal → Triage → Fix → Verify.** Do not guess what to improve.
23
+ > Let production data point to the highest-impact work first.
24
+
25
+ **Before ANY browser action, read `protocol-browser-anti-stall`.**
26
+
27
+ ## How to reason
28
+
29
+ 1. **Observe** — Sentry, Supabase logs/advisors, and a headed walkthrough in parallel
30
+ 2. **Interpret** — impact × effort from those signals, not a guessed redesign
31
+ 3. **Classify** — Critical / High / Medium / Low; present the sprint before editing
32
+ 4. **Verify** — live Playwright (or the failing query) before resolving the Sentry issue
33
+
34
+ ## Worked example
35
+
36
+ > **Observe:** Sentry `TypeError` on `/checkout` 2.4k events / 14d; advisor missing index on `orders(user_id)`; live empty cart has no message.
37
+ > **Interpret:** checkout crash blocks paying users — outranks the index and the empty state.
38
+ > **Classify:** Critical = crash fix; High = index; Medium = empty-cart copy. Present that sprint; do not start a homepage rewrite.
39
+ > **Verify:** headed `-s=post-launch` replay of checkout → 2xx; then `sentry:update_issue` resolved.
40
+
41
+ ## Self-critique before reporting
42
+
43
+ - **Signal-backed** — every fix traces to Sentry, logs, advisors, or the walkthrough
44
+ - **Live before resolve** — Playwright or the query, then Sentry resolved
45
+ - **Rows ask first** — asked-for schema ships; DELETE/UPDATE on real rows waits
46
+ - **Right owner** — one named bug → `workflow-fix-and-ship`
47
+
48
+ ---
49
+
50
+ ## Phase 0: Context [LOW freedom — run exactly]
51
+
52
+ Read the stack before pulling any signals:
53
+
54
+ ```
55
+ package.json → framework, Sentry SDK, Supabase client version
56
+ .env.local → SENTRY_ORG, SENTRY_PROJECT, SUPABASE_PROJECT_ID (name only)
57
+ README → any known issues the team is tracking
58
+ ```
59
+
60
+ Confirm available MCPs: `sentry`, `supabase`,
61
+ `firecrawl`, `playwright`.
62
+
63
+ ---
64
+
65
+ ## Phase 1: Pull production signals [LOW freedom — pull these sources]
66
+
67
+ Run all signal sources in parallel, then synthesise.
68
+
69
+ ### 1a. Sentry — errors and performance
70
+
71
+ Look up the tool schemas first.
72
+
73
+ ```json
74
+ sentry:search_issues
75
+ {
76
+ "organizationSlug": "<ORG>",
77
+ "query": "unresolved issues last 14 days sorted by frequency",
78
+ "projectSlugOrId": "<PROJECT>",
79
+ "regionUrl": "<REGION_URL>",
80
+ "limit": 25
81
+ }
82
+ ```
83
+
84
+ For each top-5 issue, get root-cause analysis:
85
+ ```json
86
+ sentry:analyze_issue_with_seer
87
+ {
88
+ "organizationSlug": "<ORG>",
89
+ "issueId": "<ISSUE_ID>",
90
+ "regionUrl": "<REGION_URL>"
91
+ }
92
+ ```
93
+
94
+ Record per issue: title, frequency (events/users), first/last seen, component.
95
+
96
+ ### 1b. Supabase — query performance and API failures
97
+
98
+ ```json
99
+ supabase:query_logs
100
+ {
101
+ "sql": "select timestamp, event_message, log_attributes['request.method'] as method, log_attributes['request.path'] as path, log_attributes['response.status_code'] as status_code from logs where source = 'edge_logs' order by timestamp desc limit 100"
102
+ }
103
+ ```
104
+
105
+ ```json
106
+ supabase:query_logs
107
+ {
108
+ "sql": "select timestamp, event_message, log_attributes['parsed.error_severity'] as error_severity from logs where source = 'postgres_logs' order by timestamp desc limit 100"
109
+ }
110
+ ```
111
+
112
+ ```json
113
+ supabase:get_advisors
114
+ {
115
+ "type": "security"
116
+ }
117
+ ```
118
+
119
+ ```json
120
+ supabase:get_advisors
121
+ {
122
+ "type": "performance"
123
+ }
124
+ ```
125
+
126
+ `query_logs` (read-only ClickHouse SQL over one `logs` table, filtered by
127
+ `source`) replaces `get_logs` on current servers. It reads the last 24 hours
128
+ unless you pass `iso_timestamp_start` / `iso_timestamp_end`.
129
+
130
+ Flag:
131
+ - API: repeated 5xx, slow responses (>1 s), CORS errors, RLS denies
132
+ - Postgres: sequential scans on large tables, missing indexes, bloated RLS policies
133
+ - Advisors: ERROR-level items = immediate action; WARN = scheduled
134
+
135
+ ### 1c. Live UX walkthrough (Playwright)
136
+
137
+ Navigate the app's 3–5 most-used flows as a real user. Look for:
138
+ - Anything that is obviously broken, slow, or confusing
139
+ - Empty/error states that have no message
140
+ - Console errors and network failures during normal use
141
+
142
+ ```bash
143
+ PW="npx --yes @playwright/cli@latest"
144
+ $PW -s=post-launch open --headed "<app-url>" # then `goto` each primary page
145
+ $PW -s=post-launch console # capture errors
146
+ $PW -s=post-launch requests # capture 4xx/5xx
147
+ $PW -s=post-launch screenshot --filename ".playwright-mcp/post-launch-<page>.png"
148
+ ```
149
+
150
+ ### 1d. Research best practices for flagged areas
151
+
152
+ For each signal category that surfaced issues:
153
+ ```json
154
+ firecrawl:firecrawl_search
155
+ {
156
+ "query": "<framework> <issue-type> fix best practices <current year>",
157
+ "limit": 3,
158
+ "sources": [{ "type": "web" }]
159
+ }
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Phase 2: Triage — rank by impact × effort [HIGH freedom]
165
+
166
+ Build an improvement backlog. For each finding:
167
+
168
+ | Field | What to fill |
169
+ |-------|-------------|
170
+ | Source | Sentry / Supabase logs / Advisor / Live walkthrough |
171
+ | Finding | One sentence describing what is wrong |
172
+ | Affected users | High (blocks most users) / Medium (hits some) / Low (edge case) |
173
+ | Effort | S (< 1 h) / M (half day) / L (multi-day, consider splitting) |
174
+ | Priority | Critical / High / Medium / Low |
175
+
176
+ **Priority mapping**:
177
+ - Critical: production crash or data loss affecting real users
178
+ - High: broken feature, significant UX failure, missing index on hot query
179
+ - Medium: degraded experience, slow query, console error not shown to user
180
+ - Low: cosmetic issue, info-only log noise, minor UX annoyance
181
+
182
+ Sort the backlog: Critical first, then by impact ÷ effort (quick wins above hard ones).
183
+
184
+ ---
185
+
186
+ ## Phase 3: Plan the improvement sprint [HIGH freedom]
187
+
188
+ For the top 5–10 items, map each to specific code:
189
+
190
+ ```
191
+ Improvement: [title]
192
+ Root cause: [1 sentence]
193
+ Fix: [file path + what to change]
194
+ Verify: [how to confirm it is fixed]
195
+ Risk: [low / medium — explain if medium+]
196
+ ```
197
+
198
+ Present the plan to the user. Get confirmation before making changes.
199
+
200
+ ---
201
+
202
+ ## Phase 4: Implement fixes [LOW freedom — surgical]
203
+
204
+ Work through the approved list one by one, following
205
+ `workflow-coding-discipline` principles:
206
+
207
+ 1. Read the file before editing. Understand the existing pattern.
208
+ 2. Make the surgical change. No refactoring unrelated code.
209
+ 3. Run the repo's lint/typecheck after each edit (Cursor: `ReadLints`). Fix introduced errors.
210
+ 4. For Supabase schema fixes (missing index, RLS policy):
211
+ - Deploy via MCP: `apply_migration` for DDL, `execute_sql` for data fixes
212
+ - Write the matching versioned migration file under `supabase/migrations/`
213
+ - Verify the object exists: query `information_schema` / `pg_indexes` / `pg_policies`
214
+
215
+ ---
216
+
217
+ ## Phase 5: Verify each fix [LOW freedom — run exactly]
218
+
219
+ After each fix, drive the specific flow that was broken:
220
+
221
+ ```bash
222
+ $PW -s=post-launch goto "<affected-page>"
223
+ $PW -s=post-launch snapshot # confirm page renders correctly
224
+ # … reproduce the original scenario as a real user …
225
+ $PW -s=post-launch console # green (no new errors)
226
+ $PW -s=post-launch requests # 2xx where it was failing
227
+ $PW -s=post-launch screenshot --filename ".playwright-mcp/fixed-<flow>.png"
228
+ ```
229
+
230
+ For Supabase fixes, re-run the failing query with `execute_sql` and confirm
231
+ the performance improvement or policy correction.
232
+
233
+ For Sentry issues: mark as resolved only after live verification confirms the
234
+ fix, not before:
235
+ ```json
236
+ sentry:update_issue
237
+ {
238
+ "organizationSlug": "<ORG>",
239
+ "issueId": "<ISSUE_ID>",
240
+ "status": "resolved",
241
+ "regionUrl": "<REGION_URL>"
242
+ }
243
+ ```
244
+
245
+ `update_issue` needs the Triage skill on the Sentry MCP connection; if the tool
246
+ is missing, resolve the issue in the Sentry UI instead.
247
+
248
+ ---
249
+
250
+ ## Phase 6: Improvement report [LOW freedom — this shape]
251
+
252
+ ```markdown
253
+ ## Post-Launch Improvement Report — [App] — [Date]
254
+
255
+ ### Signal sources checked
256
+ - Sentry: [issue count, date range]
257
+ - Supabase logs: [service, date range]
258
+ - Supabase advisors: [ERROR count / WARN count]
259
+ - Live walkthrough: [pages tested]
260
+
261
+ ### Improvements implemented
262
+ | # | Source | Finding | Fix (file) | Verified |
263
+ |---|--------|---------|-----------|---------|
264
+ | 1 | Sentry | [error] | [file:line] | ✅ |
265
+
266
+ ### Deferred (needs more investigation or is out of scope)
267
+ | # | Finding | Why deferred | Recommendation |
268
+ |---|---------|-------------|----------------|
269
+
270
+ ### Remaining Sentry noise
271
+ - [issues that are known / won't-fix / need tracking ticket]
272
+
273
+ ### Before / after summary
274
+ - Errors resolved: [count]
275
+ - Queries improved: [count, estimated ms saved]
276
+ - UX issues fixed: [count]
277
+ ```
278
+
279
+ ---
280
+
281
+ ## Guardrails
282
+
283
+ - **No speculative improvements** — only act on signal from production data.
284
+ - **Ask before deleting or restructuring** — fixes should be surgical.
285
+ - **Schema the user asked for ships; DELETE/UPDATE on real rows asks first.**
286
+ - **Re-test every fix live** — a fix is not done until Playwright confirms it.
287
+
288
+ ## Related
289
+
290
+ - `audit-analytics` — prove the funnel events this loop iterates on actually fire
291
+ - `test-red-team` / `deploy-verify` / `debug-sentry-monitor` / `test-playwright`
292
+
@@ -0,0 +1,313 @@
1
+ ---
2
+ name: meta-mcp-builder
3
+ description: >
4
+ Build Model Context Protocol (MCP) servers that expose services, APIs, and
5
+ data as typed tools for agents. Use when "build an MCP server", "give Claude
6
+ access to X", "create an MCP tool", "expose my API to an agent", or "AI
7
+ agent integration".
8
+ license: MIT
9
+ ---
10
+
11
+ # MCP Server Development Guide
12
+
13
+ **Degree of freedom: MIXED.** Which tools to expose `[HIGH freedom]`;
14
+ SDK tool shape, annotations, env-based auth, and Inspector
15
+ `[LOW freedom — run exactly]`.
16
+
17
+ Create MCP servers that enable LLMs to interact with external services.
18
+
19
+ ## How to reason
20
+
21
+ 1. **Observe** — the real agent job (search, create, send), not the raw API catalog
22
+ 2. **Interpret** — compose-from-primitives vs one workflow tool
23
+ 3. **Classify** — prefixed action names, typed params, annotations (readOnly / destructive / idempotent)
24
+ 4. **Verify** — Inspector + valid/invalid/edge; errors tell the agent what to do next
25
+
26
+ ## Worked example
27
+
28
+ > **Observe:** "give Claude access to Linear"; agents will search issues and file one — not walk the full GraphQL schema.
29
+ > **Interpret:** start with workflow-shaped tools, not 40 raw endpoints.
30
+ > **Classify:** `linear_search_issues`, `linear_create_issue`; zod params; `create` is `readOnlyHint: false`.
31
+ > **Ship:** env `LINEAR_API_KEY` (throw if missing); Inspector on both tools; no hardcoded token.
32
+
33
+ ## Self-critique before reporting
34
+
35
+ - **Names** — action-oriented and service-prefixed
36
+ - **Errors actionable** — next step in the message; no hardcoded credentials
37
+ - **Annotations match** — destructive tools say so
38
+ - **Right owner** — pack SKILL.md authoring → `meta-skill-creator`; calling an existing MCP is not this skill
39
+
40
+ ## Overview
41
+
42
+ MCP (Model Context Protocol) servers expose tools that AI agents can use. Quality is measured by how well they enable agents to accomplish real tasks.
43
+
44
+ ---
45
+
46
+ ## Quick Start [HIGH freedom]
47
+
48
+ ### 1. Choose Stack
49
+
50
+ **Recommended:** TypeScript with MCP SDK
51
+ - High-quality SDK support
52
+ - Good compatibility across environments
53
+ - Strong type safety
54
+
55
+ **Alternative:** Python with FastMCP
56
+ - Good for Python-heavy workflows
57
+
58
+ ### 2. Project Structure
59
+
60
+ ```
61
+ my-mcp-server/
62
+ ├── src/
63
+ │ ├── index.ts # Entry point
64
+ │ ├── tools/ # Tool implementations
65
+ │ │ ├── search.ts
66
+ │ │ └── create.ts
67
+ │ └── utils/ # Shared utilities
68
+ │ ├── api-client.ts
69
+ │ └── error-handler.ts
70
+ ├── package.json
71
+ ├── tsconfig.json
72
+ └── README.md
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Tool Design Principles [HIGH freedom]
78
+
79
+ ### 1. Clear Naming
80
+ ```typescript
81
+ // ✅ Good - action-oriented, prefixed
82
+ 'github_create_issue'
83
+ 'github_list_repos'
84
+ 'slack_send_message'
85
+
86
+ // ❌ Avoid - vague
87
+ 'process'
88
+ 'handle'
89
+ 'do_thing'
90
+ ```
91
+
92
+ ### 2. Complete descriptions — a man page, not a slogan
93
+
94
+ Under-description is the common failure. State what the tool does, when to use it and when not to, what each parameter means, caveats, and what it does not return — three to four sentences or more. Keep behavioral steering ("always prefer this tool") and worked examples out of the description; they constrain exploration and cost tokens on every request, and belong in a skill.
95
+
96
+ ```typescript
97
+ {
98
+ name: 'github_search_issues',
99
+ description: 'Search GitHub issues in one repository by free-text query, state, and labels. Returns up to `limit` issues with title, number, state, and URL; does not return bodies or comments (use github_get_issue for those). For creating an issue use github_create_issue.',
100
+ }
101
+ ```
102
+
103
+ ### 3. Typed Parameters
104
+
105
+ ```typescript
106
+ import { z } from 'zod';
107
+
108
+ const searchIssuesSchema = z.object({
109
+ query: z.string().describe('Search query string'),
110
+ state: z.enum(['open', 'closed', 'all']).default('open'),
111
+ labels: z.array(z.string()).optional().describe('Filter by labels'),
112
+ limit: z.number().min(1).max(100).default(10),
113
+ });
114
+ ```
115
+
116
+ ### 4. Actionable Errors
117
+
118
+ ```typescript
119
+ // ❌ Bad
120
+ throw new Error('Failed');
121
+
122
+ // ✅ Good
123
+ throw new Error(
124
+ `GitHub API rate limit exceeded. ` +
125
+ `Resets at ${resetTime}. ` +
126
+ `Try again later or authenticate for higher limits.`
127
+ );
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Implementation Pattern [LOW freedom — this shape]
133
+
134
+ ### Basic Tool Structure
135
+
136
+ ```typescript
137
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
138
+ import { z } from 'zod';
139
+
140
+ const server = new McpServer({
141
+ name: 'my-service',
142
+ version: '1.0.0',
143
+ });
144
+
145
+ // Define tool
146
+ server.tool(
147
+ 'service_action',
148
+ 'Description of what this tool does and when to use it',
149
+ {
150
+ param1: z.string().describe('What this param is for'),
151
+ param2: z.number().optional().describe('Optional param'),
152
+ },
153
+ async ({ param1, param2 }) => {
154
+ // Implementation
155
+ const result = await performAction(param1, param2);
156
+
157
+ return {
158
+ content: [
159
+ {
160
+ type: 'text',
161
+ text: JSON.stringify(result, null, 2),
162
+ },
163
+ ],
164
+ };
165
+ }
166
+ );
167
+ ```
168
+
169
+ ### Tool Annotations
170
+
171
+ ```typescript
172
+ server.tool(
173
+ 'delete_item',
174
+ 'Delete an item permanently',
175
+ { id: z.string() },
176
+ async ({ id }) => { /* ... */ },
177
+ {
178
+ annotations: {
179
+ readOnlyHint: false, // Modifies data
180
+ destructiveHint: true, // Cannot be undone
181
+ idempotentHint: true, // Safe to retry
182
+ openWorldHint: false, // Closed set of operations
183
+ },
184
+ }
185
+ );
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Best Practices [HIGH freedom]
191
+
192
+ ### API Coverage vs Workflow Tools
193
+
194
+ | Approach | When to Use |
195
+ |----------|-------------|
196
+ | full API coverage | Agent needs flexibility to compose operations |
197
+ | Workflow tools | Specific task needs multi-step automation |
198
+
199
+ **Default:** start with the tools that match the agent's real jobs (workflow-shaped), then add raw-coverage tools only where agents need to compose operations the workflow tools do not cover. Past a few dozen tools, rely on the client's tool search / deferred loading instead of always-loading every schema.
200
+
201
+ ### Response Formatting
202
+
203
+ ```typescript
204
+ // Return structured data
205
+ return {
206
+ content: [{
207
+ type: 'text',
208
+ text: JSON.stringify({
209
+ success: true,
210
+ data: results,
211
+ metadata: { count: results.length },
212
+ }, null, 2),
213
+ }],
214
+ };
215
+ ```
216
+
217
+ ### Pagination Support
218
+
219
+ ```typescript
220
+ const listItemsSchema = z.object({
221
+ limit: z.number().min(1).max(100).default(20),
222
+ cursor: z.string().optional().describe('Pagination cursor from previous response'),
223
+ });
224
+
225
+ // Return cursor in response
226
+ return {
227
+ items: results,
228
+ nextCursor: hasMore ? lastId : null,
229
+ };
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Testing [LOW freedom — run exactly]
235
+
236
+ ### 1. Build Check
237
+ ```bash
238
+ npm run build # Must pass without errors
239
+ ```
240
+
241
+ ### 2. Test with Inspector
242
+ ```bash
243
+ npx @modelcontextprotocol/inspector
244
+ ```
245
+
246
+ ### 3. Test Each Tool
247
+ - Valid inputs → expected output
248
+ - Invalid inputs → helpful error
249
+ - Edge cases → graceful handling
250
+
251
+ ---
252
+
253
+ ## Quality Checklist [LOW freedom — do not skip]
254
+
255
+ - [ ] All tools have clear, descriptive names
256
+ - [ ] All parameters have descriptions
257
+ - [ ] Every description says when not to use the tool and what it does not return
258
+ - [ ] Error messages are actionable
259
+ - [ ] Pagination for list operations
260
+ - [ ] No hardcoded credentials
261
+ - [ ] TypeScript types for all inputs/outputs
262
+ - [ ] README documents all tools
263
+ - [ ] Examples provided for complex tools
264
+
265
+ ---
266
+
267
+ ## Common Patterns [HIGH freedom]
268
+
269
+ ### Authentication
270
+ ```typescript
271
+ const apiKey = process.env.SERVICE_API_KEY;
272
+ if (!apiKey) {
273
+ throw new Error('SERVICE_API_KEY environment variable required');
274
+ }
275
+ ```
276
+
277
+ ### Rate Limiting
278
+ ```typescript
279
+ import { RateLimiter } from 'limiter';
280
+
281
+ const limiter = new RateLimiter({
282
+ tokensPerInterval: 100,
283
+ interval: 'minute',
284
+ });
285
+
286
+ async function callApi() {
287
+ await limiter.removeTokens(1);
288
+ // Make API call
289
+ }
290
+ ```
291
+
292
+ ### Caching
293
+ ```typescript
294
+ const cache = new Map<string, { data: any; expiry: number }>();
295
+
296
+ async function getCached(key: string, fetcher: () => Promise<any>) {
297
+ const cached = cache.get(key);
298
+ if (cached && cached.expiry > Date.now()) {
299
+ return cached.data;
300
+ }
301
+ const data = await fetcher();
302
+ cache.set(key, { data, expiry: Date.now() + 60000 });
303
+ return data;
304
+ }
305
+ ```
306
+
307
+ ---
308
+
309
+ ## Resources
310
+
311
+ - MCP Specification: https://modelcontextprotocol.io
312
+ - TypeScript SDK: https://github.com/modelcontextprotocol/typescript-sdk
313
+ - Python SDK: https://github.com/modelcontextprotocol/python-sdk