@kensaurus/skills 0.0.0-stage → 2.0.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 (423) 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 +1761 -0
  6. package/LICENSE +21 -0
  7. package/NOTICE +13 -0
  8. package/README.md +820 -2
  9. package/SECURITY.md +55 -0
  10. package/agents/code-reviewer.md +60 -0
  11. package/agents/completion-judge.md +89 -0
  12. package/agents/db-migrator.md +125 -0
  13. package/agents/debugger.md +47 -0
  14. package/agents/deploy-checker.md +100 -0
  15. package/agents/perf-monitor.md +74 -0
  16. package/assets/favicon.png +0 -0
  17. package/assets/logo-light.png +0 -0
  18. package/assets/logo.png +0 -0
  19. package/assets/logo.svg +6 -0
  20. package/assets/og.png +0 -0
  21. package/bin/install.mjs +1127 -0
  22. package/bin/kenji.js +2 -0
  23. package/commands/adr.md +17 -0
  24. package/commands/aeo-plan.md +18 -0
  25. package/commands/arch-boundaries.md +17 -0
  26. package/commands/aso-plan.md +18 -0
  27. package/commands/auth-flows.md +19 -0
  28. package/commands/backup-plan.md +17 -0
  29. package/commands/burndown-full.md +25 -0
  30. package/commands/capacitor-plan.md +18 -0
  31. package/commands/codemod-safety.md +22 -0
  32. package/commands/commit.md +18 -0
  33. package/commands/complete-everything.md +40 -0
  34. package/commands/cost-plan.md +19 -0
  35. package/commands/deadcode-plan.md +26 -0
  36. package/commands/deadcode.md +32 -0
  37. package/commands/debug-issue.md +17 -0
  38. package/commands/deps-plan.md +18 -0
  39. package/commands/docs-plan.md +17 -0
  40. package/commands/doctrine.md +19 -0
  41. package/commands/error-plan.md +19 -0
  42. package/commands/feedback-to-closure.md +36 -0
  43. package/commands/fix-issue.md +76 -0
  44. package/commands/gate-logic.md +26 -0
  45. package/commands/green-repo.md +36 -0
  46. package/commands/grill-me.md +19 -0
  47. package/commands/gtm-plan.md +21 -0
  48. package/commands/gtm-weekly.md +17 -0
  49. package/commands/gtm.md +22 -0
  50. package/commands/handoff.md +15 -0
  51. package/commands/housekeep-backlog.md +18 -0
  52. package/commands/housekeep-files.md +22 -0
  53. package/commands/housekeep-gates.md +18 -0
  54. package/commands/instant-nav.md +11 -0
  55. package/commands/integrity-plan.md +19 -0
  56. package/commands/launch-kit.md +16 -0
  57. package/commands/mcp-guide.md +40 -0
  58. package/commands/mobile-plan.md +19 -0
  59. package/commands/native-rn-monorepo/README.md +78 -0
  60. package/commands/native-rn-monorepo/android-build.md +26 -0
  61. package/commands/native-rn-monorepo/android-install.md +32 -0
  62. package/commands/native-rn-monorepo/android-logcat.md +37 -0
  63. package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
  64. package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
  65. package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
  66. package/commands/native-rn-monorepo/rn-reset.md +50 -0
  67. package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
  68. package/commands/native-rn-monorepo/rn-verify.md +53 -0
  69. package/commands/perf-plan.md +18 -0
  70. package/commands/plan-mode.md +74 -0
  71. package/commands/pr.md +16 -0
  72. package/commands/pricing-plan.md +20 -0
  73. package/commands/privacy-plan.md +18 -0
  74. package/commands/readability.md +12 -0
  75. package/commands/readme.md +15 -0
  76. package/commands/refactor.md +15 -0
  77. package/commands/release-prep.md +17 -0
  78. package/commands/research.md +25 -0
  79. package/commands/responsive-audit.md +21 -0
  80. package/commands/review-code.md +18 -0
  81. package/commands/rls-plan.md +18 -0
  82. package/commands/secrets-plan.md +18 -0
  83. package/commands/security-plan.md +19 -0
  84. package/commands/ship-and-observe.md +36 -0
  85. package/commands/skill-conflicts.md +19 -0
  86. package/commands/slop-plan.md +18 -0
  87. package/commands/stub-plan.md +18 -0
  88. package/commands/test-mutation.md +16 -0
  89. package/commands/test-plan.md +17 -0
  90. package/commands/test.md +29 -0
  91. package/commands/thirdparty-web-interface-guidelines.md +185 -0
  92. package/commands/uiux-plan.md +18 -0
  93. package/commands/uiux.md +45 -0
  94. package/commands/update-deps.md +21 -0
  95. package/commands/validation-plan.md +19 -0
  96. package/commands-portable/fix-issue.md +72 -0
  97. package/commands-portable/plan-mode.md +92 -0
  98. package/commands-portable/research.md +91 -0
  99. package/docs/screenshots/README.md +5 -0
  100. package/docs/screenshots/audit-dark.png +0 -0
  101. package/docs/screenshots/build-dark.png +0 -0
  102. package/docs/screenshots/grill-dark.png +0 -0
  103. package/docs/screenshots/hero-dark.png +0 -0
  104. package/docs/screenshots/hero-light.png +0 -0
  105. package/docs/screenshots/ship-dark.png +0 -0
  106. package/docs/screenshots/src/showcase.html +320 -0
  107. package/hooks/completion-gate.mjs +258 -0
  108. package/hooks/cursor-hooks.json +13 -0
  109. package/hooks/hooks.json +15 -0
  110. package/install.sh +21 -0
  111. package/llms.txt +40 -0
  112. package/mcp/README.md +266 -0
  113. package/mcp/VERSIONS.md +41 -0
  114. package/mcp/mcp-full.json.template +124 -0
  115. package/mcp/mcp.json.template +29 -0
  116. package/mcp/pinned-versions.json +27 -0
  117. package/package.json +93 -4
  118. package/rules/approved-plan-execution.mdc +65 -0
  119. package/rules/full-stack-ship-discipline.mdc +37 -0
  120. package/rules/native-rn-monorepo/README.md +63 -0
  121. package/rules/native-rn-monorepo/_project.mdc +69 -0
  122. package/rules/native-rn-monorepo/native-android.mdc +72 -0
  123. package/rules/native-rn-monorepo/native-ios.mdc +61 -0
  124. package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
  125. package/rules/native-rn-monorepo/web.mdc +60 -0
  126. package/rules/project-starter/components.mdc +54 -0
  127. package/rules/project-starter/data-fetching.mdc +77 -0
  128. package/rules/project-starter/git.mdc +41 -0
  129. package/rules/project-starter/supabase.mdc +37 -0
  130. package/rules/project-starter/tailwind.mdc +48 -0
  131. package/rules/project-starter/typescript.mdc +36 -0
  132. package/rules/project-starter/web-performance.mdc +42 -0
  133. package/rules/senior-engineer.mdc +30 -0
  134. package/rules/shell-first-search.mdc +19 -0
  135. package/rules/skill-workflows.mdc +35 -0
  136. package/rules/verification-before-completion.mdc +57 -0
  137. package/skills/audit-accessibility/SKILL.md +441 -0
  138. package/skills/audit-agent-speed/SKILL.md +181 -0
  139. package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
  140. package/skills/audit-analytics/SKILL.md +138 -0
  141. package/skills/audit-auth-flows/SKILL.md +267 -0
  142. package/skills/audit-backend-architecture/SKILL.md +266 -0
  143. package/skills/audit-backend-architecture/references/patterns.md +386 -0
  144. package/skills/audit-bundle-size/SKILL.md +296 -0
  145. package/skills/audit-cicd/SKILL.md +218 -0
  146. package/skills/audit-code-quality/SKILL.md +314 -0
  147. package/skills/audit-code-review/SKILL.md +289 -0
  148. package/skills/audit-codemod-safety/SKILL.md +159 -0
  149. package/skills/audit-db-schema/SKILL.md +465 -0
  150. package/skills/audit-db-schema/references/details.md +110 -0
  151. package/skills/audit-doctrine/SKILL.md +189 -0
  152. package/skills/audit-env-parity/SKILL.md +133 -0
  153. package/skills/audit-fe-api/SKILL.md +458 -0
  154. package/skills/audit-gate-logic/SKILL.md +219 -0
  155. package/skills/audit-i18n/SKILL.md +339 -0
  156. package/skills/audit-infra-cost/SKILL.md +142 -0
  157. package/skills/audit-langfuse-llm/SKILL.md +468 -0
  158. package/skills/audit-langfuse-llm/references/details.md +226 -0
  159. package/skills/audit-llm-security/SKILL.md +147 -0
  160. package/skills/audit-monetization-iap/SKILL.md +137 -0
  161. package/skills/audit-payment-system/SKILL.md +268 -0
  162. package/skills/audit-payment-system/references/checklist.md +283 -0
  163. package/skills/audit-performance/SKILL.md +383 -0
  164. package/skills/audit-performance/references/loading-priority-2026.md +81 -0
  165. package/skills/audit-realworld/SKILL.md +287 -0
  166. package/skills/audit-registry-listing/SKILL.md +122 -0
  167. package/skills/audit-resilience/SKILL.md +154 -0
  168. package/skills/audit-responsive/SKILL.md +221 -0
  169. package/skills/audit-responsive/references/checklist.md +166 -0
  170. package/skills/audit-security/SKILL.md +289 -0
  171. package/skills/audit-skill-conflicts/SKILL.md +178 -0
  172. package/skills/audit-ui-states/SKILL.md +146 -0
  173. package/skills/audit-uiux-design-system/SKILL.md +475 -0
  174. package/skills/audit-uiux-design-system/references/details.md +71 -0
  175. package/skills/audit-ux/SKILL.md +379 -0
  176. package/skills/audit-ux/references/details.md +245 -0
  177. package/skills/audit-ux-journeys/SKILL.md +215 -0
  178. package/skills/audit-ux-journeys/references/checklist.md +179 -0
  179. package/skills/backend-db-performance/SKILL.md +441 -0
  180. package/skills/backend-error-handling/SKILL.md +489 -0
  181. package/skills/backend-error-handling/references/details.md +58 -0
  182. package/skills/backend-observability/SKILL.md +88 -0
  183. package/skills/backend-patterns/SKILL.md +499 -0
  184. package/skills/backend-patterns/references/architecture-patterns.md +298 -0
  185. package/skills/backend-realtime/SKILL.md +403 -0
  186. package/skills/backend-realtime/references/patterns.md +74 -0
  187. package/skills/burndown-full/SKILL.md +174 -0
  188. package/skills/complete-everything/SKILL.md +295 -0
  189. package/skills/data-pipeline/SKILL.md +109 -0
  190. package/skills/data-visualization/SKILL.md +488 -0
  191. package/skills/debug-error/SKILL.md +322 -0
  192. package/skills/debug-fe-be-integration/SKILL.md +459 -0
  193. package/skills/debug-sentry-monitor/SKILL.md +497 -0
  194. package/skills/debug-sentry-monitor/references/details.md +165 -0
  195. package/skills/deploy-npm/SKILL.md +394 -0
  196. package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
  197. package/skills/deploy-verify/SKILL.md +489 -0
  198. package/skills/design-api/SKILL.md +379 -0
  199. package/skills/design-canvas/SKILL.md +155 -0
  200. package/skills/design-email/SKILL.md +370 -0
  201. package/skills/design-frontend/SKILL.md +143 -0
  202. package/skills/design-generative-art/SKILL.md +474 -0
  203. package/skills/design-mobile-first/SKILL.md +506 -0
  204. package/skills/design-motion/SKILL.md +333 -0
  205. package/skills/design-motion/references/delight-interactions.md +191 -0
  206. package/skills/design-prd/SKILL.md +443 -0
  207. package/skills/design-system/SKILL.md +457 -0
  208. package/skills/design-theme/SKILL.md +226 -0
  209. package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
  210. package/skills/docs-adr/SKILL.md +168 -0
  211. package/skills/docs-coauthor/SKILL.md +368 -0
  212. package/skills/docs-comparison-pages/SKILL.md +117 -0
  213. package/skills/docs-domain-modeling/SKILL.md +97 -0
  214. package/skills/docs-launch-kit/SKILL.md +139 -0
  215. package/skills/docs-writer/SKILL.md +469 -0
  216. package/skills/enhance-agent-guardrails/SKILL.md +164 -0
  217. package/skills/enhance-arch-boundaries/SKILL.md +154 -0
  218. package/skills/enhance-capacitor-ui/SKILL.md +463 -0
  219. package/skills/enhance-capacitor-ui/references/details.md +750 -0
  220. package/skills/enhance-email-deliverability/SKILL.md +143 -0
  221. package/skills/enhance-growth-loops/SKILL.md +122 -0
  222. package/skills/enhance-lifecycle-email/SKILL.md +130 -0
  223. package/skills/enhance-motion/SKILL.md +193 -0
  224. package/skills/enhance-onboarding/SKILL.md +148 -0
  225. package/skills/enhance-pwa/SKILL.md +304 -0
  226. package/skills/enhance-readability/SKILL.md +146 -0
  227. package/skills/enhance-readme/SKILL.md +496 -0
  228. package/skills/enhance-readme/package-lock.json +187 -0
  229. package/skills/enhance-readme/package.json +17 -0
  230. package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
  231. package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
  232. package/skills/enhance-skill-prompts/SKILL.md +167 -0
  233. package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
  234. package/skills/enhance-web-conversion/SKILL.md +155 -0
  235. package/skills/enhance-web-forms/SKILL.md +154 -0
  236. package/skills/enhance-web-instant-nav/SKILL.md +138 -0
  237. package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
  238. package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
  239. package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
  240. package/skills/enhance-web-landing/SKILL.md +459 -0
  241. package/skills/enhance-web-landing/references/details.md +773 -0
  242. package/skills/enhance-web-redesign/SKILL.md +228 -0
  243. package/skills/enhance-web-seo/SKILL.md +276 -0
  244. package/skills/enhance-web-ui/SKILL.md +473 -0
  245. package/skills/enhance-web-ui/references/details.md +674 -0
  246. package/skills/enhance-web-ux/HEURISTICS.md +242 -0
  247. package/skills/enhance-web-ux/PATTERNS.md +375 -0
  248. package/skills/enhance-web-ux/SKILL.md +464 -0
  249. package/skills/enhance-web-ux/examples.md +222 -0
  250. package/skills/enhance-web-ux/references/details.md +406 -0
  251. package/skills/enhance-web-web3d/SKILL.md +397 -0
  252. package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
  253. package/skills/handoff/SKILL.md +66 -0
  254. package/skills/housekeep-backlog/SKILL.md +149 -0
  255. package/skills/housekeep-dead-code/SKILL.md +387 -0
  256. package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
  257. package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
  258. package/skills/housekeep-design/SKILL.md +207 -0
  259. package/skills/housekeep-files/SKILL.md +220 -0
  260. package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
  261. package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
  262. package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
  263. package/skills/housekeep-gates/SKILL.md +174 -0
  264. package/skills/iterate-agent-harness/SKILL.md +137 -0
  265. package/skills/iterate-gtm-weekly/SKILL.md +103 -0
  266. package/skills/iterate-post-launch/SKILL.md +292 -0
  267. package/skills/meta-mcp-builder/SKILL.md +313 -0
  268. package/skills/meta-skill-creator/SKILL.md +304 -0
  269. package/skills/mobile-capacitor-platform/SKILL.md +104 -0
  270. package/skills/mobile-emulator-start/SKILL.md +296 -0
  271. package/skills/mobile-emulator-test/SKILL.md +491 -0
  272. package/skills/mobile-emulator-test/references/details.md +478 -0
  273. package/skills/mobile-rn-performance/SKILL.md +107 -0
  274. package/skills/mobile-rn-screen/SKILL.md +476 -0
  275. package/skills/mobile-rn-screen/references/details.md +785 -0
  276. package/skills/mushi-health/SKILL.md +206 -0
  277. package/skills/mushi-integration/SKILL.md +257 -0
  278. package/skills/plan-aeo-readiness/SKILL.md +166 -0
  279. package/skills/plan-antislop/SKILL.md +281 -0
  280. package/skills/plan-aso/SKILL.md +149 -0
  281. package/skills/plan-backup-dr/SKILL.md +131 -0
  282. package/skills/plan-capacitor-hardening/SKILL.md +217 -0
  283. package/skills/plan-data-integrity/SKILL.md +187 -0
  284. package/skills/plan-dead-code/SKILL.md +386 -0
  285. package/skills/plan-dead-code/references/knip-config.md +214 -0
  286. package/skills/plan-dead-code/references/output-templates.md +133 -0
  287. package/skills/plan-dead-code/references/preservation-contract.md +50 -0
  288. package/skills/plan-dead-code/references/residue-greps.md +84 -0
  289. package/skills/plan-dependency-provenance/SKILL.md +200 -0
  290. package/skills/plan-docs-sync/SKILL.md +143 -0
  291. package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
  292. package/skills/plan-docs-sync/references/output-templates.md +33 -0
  293. package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
  294. package/skills/plan-error-handling/SKILL.md +205 -0
  295. package/skills/plan-gtm/SKILL.md +276 -0
  296. package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
  297. package/skills/plan-input-validation/SKILL.md +179 -0
  298. package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
  299. package/skills/plan-mobile-readiness/SKILL.md +171 -0
  300. package/skills/plan-perf-audit/SKILL.md +145 -0
  301. package/skills/plan-perf-audit/references/audit-scope.md +51 -0
  302. package/skills/plan-perf-audit/references/output-templates.md +33 -0
  303. package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
  304. package/skills/plan-pricing/SKILL.md +173 -0
  305. package/skills/plan-privacy-compliance/SKILL.md +148 -0
  306. package/skills/plan-rls-audit/SKILL.md +231 -0
  307. package/skills/plan-secrets-audit/SKILL.md +181 -0
  308. package/skills/plan-security-audit/SKILL.md +168 -0
  309. package/skills/plan-security-audit/references/output-templates.md +36 -0
  310. package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
  311. package/skills/plan-security-audit/references/preservation-contract.md +18 -0
  312. package/skills/plan-stub-checker/SKILL.md +216 -0
  313. package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
  314. package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
  315. package/skills/plan-stub-checker/references/output-templates.md +63 -0
  316. package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
  317. package/skills/plan-test-coverage/SKILL.md +170 -0
  318. package/skills/plan-test-coverage/references/methodology.md +54 -0
  319. package/skills/plan-test-coverage/references/output-templates.md +34 -0
  320. package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
  321. package/skills/plan-uiux-unification/SKILL.md +230 -0
  322. package/skills/plan-uiux-unification/references/output-templates.md +67 -0
  323. package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
  324. package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
  325. package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
  326. package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
  327. package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
  328. package/skills/research/SKILL.md +422 -0
  329. package/skills/test-exploratory/SKILL.md +165 -0
  330. package/skills/test-exploratory/references/charter-template.md +29 -0
  331. package/skills/test-load/SKILL.md +126 -0
  332. package/skills/test-mutation/SKILL.md +160 -0
  333. package/skills/test-playwright/SKILL.md +354 -0
  334. package/skills/test-qa/SKILL.md +364 -0
  335. package/skills/test-qa/references/details.md +268 -0
  336. package/skills/test-red-team/SKILL.md +387 -0
  337. package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
  338. package/skills/test-unit/SKILL.md +259 -0
  339. package/skills/test-unit/references/details.md +267 -0
  340. package/skills/test-visual-regression/SKILL.md +132 -0
  341. package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
  342. package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
  343. package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
  344. package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
  345. package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
  346. package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
  347. package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
  348. package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
  349. package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
  350. package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
  351. package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
  352. package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
  353. package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  354. package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  355. package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  356. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  357. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  358. package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  359. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  360. package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
  361. package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  362. package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  363. package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  364. package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
  365. package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
  366. package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
  367. package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  368. package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  369. package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
  370. package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
  371. package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
  372. package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
  373. package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
  374. package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
  375. package/skills/workflow-build-feature/SKILL.md +118 -0
  376. package/skills/workflow-coding-discipline/SKILL.md +140 -0
  377. package/skills/workflow-environment-ready/SKILL.md +128 -0
  378. package/skills/workflow-feature-flag/SKILL.md +262 -0
  379. package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
  380. package/skills/workflow-fix-and-ship/SKILL.md +136 -0
  381. package/skills/workflow-git-commit/SKILL.md +200 -0
  382. package/skills/workflow-green-repo/SKILL.md +166 -0
  383. package/skills/workflow-grilling/SKILL.md +73 -0
  384. package/skills/workflow-gtm/SKILL.md +153 -0
  385. package/skills/workflow-housekeep/SKILL.md +453 -0
  386. package/skills/workflow-housekeep/references/templates.md +109 -0
  387. package/skills/workflow-launch-ready/SKILL.md +145 -0
  388. package/skills/workflow-merge-conflicts/SKILL.md +62 -0
  389. package/skills/workflow-onboard/SKILL.md +99 -0
  390. package/skills/workflow-parallel-agents/SKILL.md +164 -0
  391. package/skills/workflow-pr/SKILL.md +197 -0
  392. package/skills/workflow-quality-gate/SKILL.md +147 -0
  393. package/skills/workflow-refactor/SKILL.md +274 -0
  394. package/skills/workflow-release-prep/SKILL.md +207 -0
  395. package/skills/workflow-ship-and-observe/SKILL.md +164 -0
  396. package/skills/workflow-spec-tdd/SKILL.md +141 -0
  397. package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
  398. package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
  399. package/skills-cursor/babysit/SKILL.md +17 -0
  400. package/skills-cursor/canvas/SKILL.md +142 -0
  401. package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
  402. package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
  403. package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
  404. package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
  405. package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
  406. package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
  407. package/skills-cursor/canvas/sdk/index.d.ts +47 -0
  408. package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
  409. package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
  410. package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
  411. package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
  412. package/skills-cursor/create-hook/SKILL.md +238 -0
  413. package/skills-cursor/create-rule/SKILL.md +185 -0
  414. package/skills-cursor/create-skill/SKILL.md +269 -0
  415. package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
  416. package/skills-cursor/create-subagent/SKILL.md +228 -0
  417. package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
  418. package/skills-cursor/shell/SKILL.md +22 -0
  419. package/skills-cursor/split-to-prs/SKILL.md +47 -0
  420. package/skills-cursor/statusline/SKILL.md +193 -0
  421. package/skills-cursor/update-cli-config/SKILL.md +85 -0
  422. package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
  423. package/skills.sh.json +296 -0
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Form primitives for `cursor/canvas`. Provides themed, controlled form controls
3
+ * for interactive canvas apps with persistent state. All `onChange` callbacks
4
+ * receive the **value directly** (not a DOM event), so they pair naturally
5
+ * with `useCanvasState`:
6
+ *
7
+ * ```tsx
8
+ * const [name, setName] = useCanvasState("name", "");
9
+ * <TextInput value={name} onChange={setName} placeholder="Enter name…" />
10
+ * ```
11
+ */
12
+ import { type CSSProperties, type JSX, type ReactNode } from "react";
13
+ export type TextInputProps = {
14
+ value?: string;
15
+ /** Called with the new string value on every keystroke. */
16
+ onChange?: (value: string) => void;
17
+ placeholder?: string;
18
+ disabled?: boolean;
19
+ type?: "text" | "email" | "password" | "number" | "url" | "search";
20
+ style?: CSSProperties;
21
+ };
22
+ /**
23
+ * Single-line text input (28px height). Use for names, titles, search
24
+ * queries, and short text fields.
25
+ *
26
+ * `onChange` receives the **string value**, not a DOM event — this pairs
27
+ * directly with `useCanvasState` setters.
28
+ *
29
+ * @example
30
+ * ```tsx
31
+ * const [name, setName] = useCanvasState("name", "");
32
+ *
33
+ * <TextInput value={name} onChange={setName} placeholder="Task title…" />
34
+ * ```
35
+ */
36
+ export declare function TextInput({ value, onChange, placeholder, disabled, type, style }: TextInputProps): JSX.Element;
37
+ export type TextAreaProps = {
38
+ value?: string;
39
+ /** Called with the new string value on every keystroke. */
40
+ onChange?: (value: string) => void;
41
+ placeholder?: string;
42
+ disabled?: boolean;
43
+ /** Minimum visible rows. Defaults to 3. */
44
+ rows?: number;
45
+ style?: CSSProperties;
46
+ };
47
+ /**
48
+ * Multi-line text input that auto-resizes to fit its content.
49
+ * Use for notes, descriptions, comments, and multi-line text fields.
50
+ *
51
+ * The textarea grows as the user types. Set `rows` for the minimum visible
52
+ * height (defaults to 3). Override with `style={{ height: "100px" }}` for a
53
+ * fixed size.
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * const [notes, setNotes] = useCanvasState("notes", "");
58
+ *
59
+ * <TextArea value={notes} onChange={setNotes} placeholder="Add notes…" rows={4} />
60
+ * ```
61
+ */
62
+ export declare function TextArea({ value, onChange, placeholder, disabled, rows, style }: TextAreaProps): JSX.Element;
63
+ export type CheckboxProps = {
64
+ checked?: boolean;
65
+ /** Called with the new boolean value when toggled. */
66
+ onChange?: (checked: boolean) => void;
67
+ disabled?: boolean;
68
+ /** Optional label rendered beside the checkbox. Clicking the label toggles the checkbox. */
69
+ label?: ReactNode;
70
+ style?: CSSProperties;
71
+ };
72
+ /**
73
+ * Checkbox with optional label (accent blue when checked).
74
+ *
75
+ * Pass `label` to render a clickable text label beside the checkbox. Without a
76
+ * label, provide `title` or wrap in your own `<label>` for accessibility.
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * const [agreed, setAgreed] = useCanvasState("agreed", false);
81
+ *
82
+ * <Checkbox checked={agreed} onChange={setAgreed} label="I agree to the terms" />
83
+ * ```
84
+ *
85
+ * @example
86
+ * ```tsx
87
+ * // Checkbox in a list — no label, parent handles layout
88
+ * <Checkbox checked={item.done} onChange={(v) => toggleItem(item.id, v)} />
89
+ * ```
90
+ */
91
+ export declare function Checkbox({ checked, onChange, disabled, label, style }: CheckboxProps): JSX.Element;
92
+ export type ToggleProps = {
93
+ checked?: boolean;
94
+ /** Called with the new boolean value when toggled. */
95
+ onChange?: (checked: boolean) => void;
96
+ disabled?: boolean;
97
+ /** `sm` = 16px track, `md` = 20px track (default `sm`). */
98
+ size?: "sm" | "md";
99
+ style?: CSSProperties;
100
+ };
101
+ /**
102
+ * Boolean toggle switch. Uses the accent color for the "on" state and a
103
+ * neutral fill for "off".
104
+ *
105
+ * @example
106
+ * ```tsx
107
+ * const [enabled, setEnabled] = useCanvasState("enabled", false);
108
+ *
109
+ * <Row gap={8} align="center">
110
+ * <Text>Notifications</Text>
111
+ * <Spacer />
112
+ * <Toggle checked={enabled} onChange={setEnabled} />
113
+ * </Row>
114
+ * ```
115
+ */
116
+ export declare function Toggle({ checked, onChange, disabled, size, style }: ToggleProps): JSX.Element;
117
+ export type SelectOption = {
118
+ value: string;
119
+ label: string;
120
+ disabled?: boolean;
121
+ };
122
+ export type SelectProps = {
123
+ value?: string;
124
+ /** Called with the new selected value. */
125
+ onChange?: (value: string) => void;
126
+ /** List of options. Each must have a unique `value`. */
127
+ options: SelectOption[];
128
+ /** Placeholder shown when no value is selected. */
129
+ placeholder?: string;
130
+ disabled?: boolean;
131
+ style?: CSSProperties;
132
+ };
133
+ /**
134
+ * Dropdown select (native `<select>` with themed styling).
135
+ *
136
+ * Uses a native `<select>` under the hood for reliable keyboard, screen-reader,
137
+ * and mobile support. The dropdown list uses OS-native styling.
138
+ *
139
+ * @example
140
+ * ```tsx
141
+ * const [priority, setPriority] = useCanvasState("priority", "medium");
142
+ *
143
+ * <Select
144
+ * value={priority}
145
+ * onChange={setPriority}
146
+ * options={[
147
+ * { value: "low", label: "Low" },
148
+ * { value: "medium", label: "Medium" },
149
+ * { value: "high", label: "High" },
150
+ * ]}
151
+ * />
152
+ * ```
153
+ */
154
+ export declare function Select({ value, onChange, options, placeholder, disabled, style }: SelectProps): JSX.Element;
155
+ export type IconButtonProps = {
156
+ /** Icon content: an SVG element, emoji, or unicode character. */
157
+ children: ReactNode;
158
+ onClick?: () => void;
159
+ disabled?: boolean;
160
+ /** Tooltip text. Always provide for accessibility since there is no text label. */
161
+ title?: string;
162
+ /**
163
+ * `"default"` is transparent until hovered; `"circle"` has a permanent
164
+ * background fill.
165
+ */
166
+ variant?: "default" | "circle";
167
+ /** `sm` = 16px, `md` = 20px (default `md`). */
168
+ size?: "sm" | "md";
169
+ style?: CSSProperties;
170
+ };
171
+ /**
172
+ * Compact icon-only button for inline actions on list items (delete, edit,
173
+ * expand, etc.). Accepts **any** `children` as the icon — use an inline SVG,
174
+ * an emoji, or a unicode character.
175
+ *
176
+ * Always provide `title` for accessibility (screen-reader label + tooltip).
177
+ *
178
+ * Canvas has no icon font, so pass icon content directly.
179
+ *
180
+ * @example
181
+ * ```tsx
182
+ * // Delete button on a card
183
+ * <IconButton title="Delete" onClick={() => remove(id)}>✕</IconButton>
184
+ *
185
+ * // Edit button with an SVG icon
186
+ * <IconButton title="Edit" variant="circle" size="sm" onClick={edit}>
187
+ * <svg width={12} height={12} viewBox="0 0 12 12" fill="none">
188
+ * <path d="M8.5 1.5l2 2L4 10H2V8z" stroke="currentColor" strokeWidth={1.2} />
189
+ * </svg>
190
+ * </IconButton>
191
+ * ```
192
+ */
193
+ export declare function IconButton({ children, onClick, disabled, title, variant, size, style }: IconButtonProps): JSX.Element;
194
+ //# sourceMappingURL=form-primitives.d.ts.map
@@ -0,0 +1,117 @@
1
+ import type { CanvasPalette, CanvasTokens } from "./canvas-tokens.js";
2
+ import { type CanvasAction } from "./internal/canvas-action-dispatch.js";
3
+ /**
4
+ * Host theme for the current canvas. Semantic color groups (`text`, `bg`,
5
+ * `fill`, `stroke`, `accent`, `diff`) live at the top level for ergonomic
6
+ * inline-style access; `tokens` is also present as a self-reference for
7
+ * callers that prefer a namespaced form.
8
+ */
9
+ export interface CanvasHostTheme extends CanvasTokens {
10
+ readonly kind: string;
11
+ readonly tokens: CanvasTokens;
12
+ readonly palette: CanvasPalette;
13
+ }
14
+ /**
15
+ * Returns the current host theme. Falls back to dark mode when no host
16
+ * state is available.
17
+ *
18
+ * Semantic color groups are available directly on the returned object —
19
+ * `accent`, `text`, `bg`, `fill`, `stroke`, `diff` — as well as `kind`
20
+ * (`"dark"` | `"light"` | …) and `palette` (the flat color palette).
21
+ *
22
+ * Call `useHostTheme()` inside each component that needs theme access —
23
+ * the returned object is scoped to that component, not shared across
24
+ * function boundaries.
25
+ *
26
+ * Stable paths for `style={{ ... }}` usage:
27
+ * - `text.primary / secondary / tertiary / quaternary` — text hierarchy
28
+ * - `bg.editor / chrome / elevated` — surface backgrounds
29
+ * - `fill.primary / secondary / tertiary / quaternary` — tinted fills
30
+ * - `stroke.primary / secondary / tertiary` — borders and dividers
31
+ * - `accent.primary / control` — accent blue and button background
32
+ * - `text.link` — link color
33
+ * - `text.onAccent` — text on accent-colored surfaces
34
+ *
35
+ * Prefer built-in components (`Card`, `Button`, `Text`, etc.) over raw
36
+ * token usage. Reach for tokens only when no component covers the case,
37
+ * and stick to flat solid colors — no gradients, no box-shadows.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * function Overview() {
42
+ * const theme = useHostTheme();
43
+ * return (
44
+ * <div style={{ background: theme.fill.tertiary, color: theme.text.secondary, padding: 8 }}>
45
+ * <span style={{ color: theme.accent.primary }}>Accent text</span>
46
+ * </div>
47
+ * );
48
+ * }
49
+ * ```
50
+ */
51
+ export declare function useHostTheme(): CanvasHostTheme;
52
+ /**
53
+ * Setter for `useCanvasState`. Accepts either a new value or an updater
54
+ * function that receives the previous value.
55
+ */
56
+ export type SetCanvasState<T> = (action: T | ((prev: T) => T)) => void;
57
+ /**
58
+ * Persistent state hook for canvas applications. Works like `React.useState`
59
+ * but the value survives rebuilds, reloads, and IDE restarts — it is stored
60
+ * in a `.canvas.data.json` sidecar file next to the canvas source.
61
+ *
62
+ * Each key is a unique string chosen by the canvas author. Keys are stable
63
+ * regardless of hook call order or component tree structure.
64
+ *
65
+ * @param key - Unique string identifier for this piece of state.
66
+ * @param defaultValue - Value returned when no persisted value exists for `key`.
67
+ * @returns A `[value, setValue]` tuple, same shape as `React.useState`.
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * function Counter() {
72
+ * const [count, setCount] = useCanvasState("count", 0);
73
+ * return <Button onClick={() => setCount(c => c + 1)}>{count}</Button>;
74
+ * }
75
+ * ```
76
+ *
77
+ * @example
78
+ * ```tsx
79
+ * interface Column { id: string; title: string; cardIds: string[] }
80
+ * function KanbanBoard() {
81
+ * const [columns, setColumns] = useCanvasState<Column[]>("columns", [
82
+ * { id: "todo", title: "To Do", cardIds: [] },
83
+ * { id: "doing", title: "In Progress", cardIds: [] },
84
+ * { id: "done", title: "Done", cardIds: [] },
85
+ * ]);
86
+ * // ...
87
+ * }
88
+ * ```
89
+ */
90
+ export declare function useCanvasState<T>(key: string, defaultValue: T): [T, SetCanvasState<T>];
91
+ export type { CanvasAction };
92
+ /**
93
+ * Returns a stable `dispatch` function for triggering IDE actions from
94
+ * canvas buttons. Actions are fire-and-forget — the canvas does not
95
+ * receive a response.
96
+ *
97
+ * ## Available actions
98
+ *
99
+ * **`openAgent`** — Navigate the IDE to an agent conversation.
100
+ * `agentId` is the conversation UUID (the filename stem from the
101
+ * `agent-transcripts/` directory). Works for both local and
102
+ * cloud/background agents in Glass and classic IDE modes.
103
+ *
104
+ * @example
105
+ * ```tsx
106
+ * function AgentLink({ agentId, title }: { agentId: string; title: string }) {
107
+ * const dispatch = useCanvasAction();
108
+ * return (
109
+ * <Button onClick={() => dispatch({ type: "openAgent", agentId })}>
110
+ * {title}
111
+ * </Button>
112
+ * );
113
+ * }
114
+ * ```
115
+ */
116
+ export declare function useCanvasAction(): (action: CanvasAction) => void;
117
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Public API for authoring `.canvas.tsx` files via `cursor/canvas`.
3
+ *
4
+ * Be creative with layout — use Grid, Row, cards, charts, tables, and raw SVG
5
+ * in whatever combination serves the content. Read the canvas skill for full
6
+ * design guidance. Key constraints:
7
+ *
8
+ * - Colors from `useHostTheme()` tokens. No hardcoded hex.
9
+ * - No gradients, no box-shadows, no emojis as decoration.
10
+ * - Don't wrap every section in Card — mix open sections with cards.
11
+ * - Run the pre-delivery self-check before returning code.
12
+ */
13
+ /** Charts. */
14
+ export type { BarChartProps, ChartDataPoint, ChartSeries, ChartTone, LineChartProps, PieChartProps, } from "./chart-primitives.js";
15
+ export { BarChart, LineChart, PieChart } from "./chart-primitives.js";
16
+ /** DAG layout. */
17
+ export type { DAGLayoutEdge, DAGLayoutNode, DAGLayoutOptions, DAGLayoutRank, DAGLayoutResult, } from "./dag-layout.js";
18
+ export { computeDAGLayout } from "./dag-layout.js";
19
+ /**
20
+ * Diff rendering. Compose with the generic `Card` family for file-level
21
+ * chrome: use `DiffView` inside a `CardBody` (with `padding: 0`) and put
22
+ * `DiffStats` in the enclosing `CardHeader`'s `trailing` slot.
23
+ */
24
+ export type { DiffLineData, DiffLineType, DiffStatsProps, DiffViewProps, } from "./diff-view.js";
25
+ export { DiffStats, DiffView } from "./diff-view.js";
26
+ /** Form controls. */
27
+ export type { CheckboxProps, IconButtonProps, SelectOption, SelectProps, TextAreaProps, TextInputProps, ToggleProps, } from "./form-primitives.js";
28
+ export { Checkbox, IconButton, Select, TextArea, TextInput, Toggle, } from "./form-primitives.js";
29
+ /** Host state hooks. */
30
+ export type { CanvasAction, CanvasHostTheme, SetCanvasState } from "./hooks.js";
31
+ export { useCanvasAction, useCanvasState, useHostTheme } from "./hooks.js";
32
+ /** Semantic design tokens for custom styling. */
33
+ export type { CanvasPalette, CanvasTokens } from "./theme.js";
34
+ export { canvasPaletteDark, canvasPaletteLight, canvasTokens, canvasTokensLight, } from "./theme.js";
35
+ export type { TodoItem, TodoListCardProps, TodoListProps, TodoStatus, } from "./todo-list.js";
36
+ export { TodoList, TodoListCard } from "./todo-list.js";
37
+ /** Component props types. */
38
+ export type { ButtonProps, CalloutProps, CalloutTone, CardBodyProps, CardHeaderProps, CardProps, CardSize, CardVariant, CodeProps, DividerProps, GridProps, H1Props, H2Props, H3Props, LinkProps, PillProps, PillSize, PillTone, RowProps, StackProps, StatProps, StatTone, TableColumnAlign, TableProps, TableRowTone, TextProps, TextWeight, } from "./ui-primitives.js";
39
+ /** Layout. */
40
+ /** Typography. */
41
+ /** Surfaces. */
42
+ /** Actions. */
43
+ /** Feedback. */
44
+ export { Button, Callout, Card, CardBody, CardHeader, Code, Divider, Grid, H1, H2, H3, Link,
45
+ /** Shallow-merge two style objects. Useful for combining tokens with overrides. */
46
+ mergeStyle, Pill, Row, Spacer, Stack, Stat, Table, Text, } from "./ui-primitives.js";
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,61 @@
1
+ export type { CanvasPalette, CanvasTokens } from "./canvas-tokens.js";
2
+ export { canvasPaletteDark, canvasPaletteLight, canvasTokens, canvasTokensLight, } from "./canvas-tokens.js";
3
+ /** Typography presets used by the built-in `cursor/canvas` components. */
4
+ export declare const canvasTypography: {
5
+ readonly h1: {
6
+ readonly fontSize: "24px";
7
+ readonly lineHeight: "30px";
8
+ readonly fontWeight: 590;
9
+ };
10
+ readonly h2: {
11
+ readonly fontSize: "18px";
12
+ readonly lineHeight: "24px";
13
+ readonly fontWeight: 590;
14
+ };
15
+ readonly h3: {
16
+ readonly fontSize: "16px";
17
+ readonly lineHeight: "22px";
18
+ readonly fontWeight: 590;
19
+ };
20
+ readonly body: {
21
+ readonly fontSize: "14px";
22
+ readonly lineHeight: "20px";
23
+ readonly fontWeight: 400;
24
+ };
25
+ readonly small: {
26
+ readonly fontSize: "12px";
27
+ readonly lineHeight: "16px";
28
+ readonly fontWeight: 400;
29
+ };
30
+ };
31
+ /** Spacing scale (px). */
32
+ export declare const canvasSpacing: {
33
+ readonly "0.5": 2;
34
+ readonly "1": 4;
35
+ readonly "1.5": 6;
36
+ readonly "2": 8;
37
+ readonly "2.5": 10;
38
+ readonly "3": 12;
39
+ readonly "3.5": 14;
40
+ readonly "4": 16;
41
+ readonly "4.5": 18;
42
+ readonly "5": 20;
43
+ readonly "6": 24;
44
+ readonly "7": 28;
45
+ readonly "8": 32;
46
+ readonly "9": 36;
47
+ readonly "10": 40;
48
+ };
49
+ export type CanvasSpacing = typeof canvasSpacing;
50
+ /** Border radius (px). */
51
+ export declare const canvasRadius: {
52
+ readonly none: 0;
53
+ readonly xs: 2;
54
+ readonly sm: 4;
55
+ readonly md: 6;
56
+ readonly lg: 8;
57
+ readonly xl: 12;
58
+ readonly full: 9999;
59
+ };
60
+ export type CanvasRadius = typeof canvasRadius;
61
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1,49 @@
1
+ import type { CSSProperties, JSX } from "react";
2
+ export type TodoStatus = "pending" | "in_progress" | "completed" | "cancelled";
3
+ export interface TodoItem {
4
+ readonly id: string;
5
+ readonly content: string;
6
+ readonly status: TodoStatus;
7
+ }
8
+ export type TodoListProps = {
9
+ todos: readonly TodoItem[];
10
+ dimmedTodoIds?: ReadonlySet<string>;
11
+ /** Called when a todo row is clicked (entire row is a button). */
12
+ onTodoClick?: (todo: TodoItem) => void;
13
+ style?: CSSProperties;
14
+ };
15
+ /**
16
+ * Task list with status icons and wrapping text. Each row is a **clickable**
17
+ * button; use `onTodoClick` to handle selection or navigation.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <TodoList
22
+ * todos={items}
23
+ * onTodoClick={(todo) => setActiveId(todo.id)}
24
+ * />
25
+ * ```
26
+ */
27
+ export declare function TodoList({ todos, dimmedTodoIds, onTodoClick, style }: TodoListProps): JSX.Element | null;
28
+ export type TodoListCardProps = {
29
+ todos: readonly TodoItem[];
30
+ dimmedTodoIds?: ReadonlySet<string>;
31
+ defaultExpanded?: boolean;
32
+ onTodoClick?: (todo: TodoItem) => void;
33
+ style?: CSSProperties;
34
+ };
35
+ /**
36
+ * Bordered, collapsible todo list with summary header (N of M Done). Compose
37
+ * with `onTodoClick` for row actions.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <TodoListCard
42
+ * todos={items}
43
+ * defaultExpanded
44
+ * onTodoClick={(todo) => console.log(todo.id)}
45
+ * />
46
+ * ```
47
+ */
48
+ export declare function TodoListCard({ todos, dimmedTodoIds, defaultExpanded, onTodoClick, style }: TodoListCardProps): JSX.Element | null;
49
+ //# sourceMappingURL=todo-list.d.ts.map