@batijs/cli 0.0.657 → 0.0.659

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 (61) hide show
  1. package/dist/boilerplates/@batijs/auth0/bati.config.mjs +1 -1
  2. package/dist/boilerplates/@batijs/authjs/bati.config.mjs +2 -16
  3. package/dist/boilerplates/@batijs/aws/bati.config.mjs +1 -13
  4. package/dist/boilerplates/@batijs/better-auth/bati.config.mjs +2 -17
  5. package/dist/boilerplates/@batijs/biome/bati.config.mjs +2 -16
  6. package/dist/boilerplates/@batijs/cloudflare/bati.config.mjs +1 -15
  7. package/dist/boilerplates/@batijs/compiled/bati.config.mjs +1 -13
  8. package/dist/boilerplates/@batijs/d1/bati.config.mjs +1 -1
  9. package/dist/boilerplates/@batijs/d1-kysely/bati.config.mjs +1 -1
  10. package/dist/boilerplates/@batijs/d1-sqlite/bati.config.mjs +4 -18
  11. package/dist/boilerplates/@batijs/docker-compose/bati.config.mjs +2 -14
  12. package/dist/boilerplates/@batijs/dokploy/bati.config.mjs +2 -14
  13. package/dist/boilerplates/@batijs/drizzle/bati.config.mjs +1 -17
  14. package/dist/boilerplates/@batijs/edgeone/bati.config.mjs +2 -14
  15. package/dist/boilerplates/@batijs/elysia/bati.config.mjs +2 -15
  16. package/dist/boilerplates/@batijs/eslint/bati.config.mjs +2 -14
  17. package/dist/boilerplates/@batijs/express/bati.config.mjs +2 -15
  18. package/dist/boilerplates/@batijs/fastify/bati.config.mjs +2 -15
  19. package/dist/boilerplates/@batijs/google-analytics/bati.config.mjs +2 -14
  20. package/dist/boilerplates/@batijs/hono/bati.config.mjs +2 -15
  21. package/dist/boilerplates/@batijs/kysely/bati.config.mjs +2 -16
  22. package/dist/boilerplates/@batijs/mantine/bati.config.mjs +2 -14
  23. package/dist/boilerplates/@batijs/netlify/bati.config.mjs +4 -18
  24. package/dist/boilerplates/@batijs/oxlint/bati.config.mjs +2 -14
  25. package/dist/boilerplates/@batijs/plausible.io/bati.config.mjs +4 -18
  26. package/dist/boilerplates/@batijs/pnpm/bati.config.mjs +1 -1
  27. package/dist/boilerplates/@batijs/postgres/bati.config.mjs +1 -13
  28. package/dist/boilerplates/@batijs/prettier/bati.config.mjs +2 -14
  29. package/dist/boilerplates/@batijs/prisma/bati.config.mjs +2 -20
  30. package/dist/boilerplates/@batijs/react/bati.config.mjs +2 -14
  31. package/dist/boilerplates/@batijs/react-better-auth/bati.config.mjs +1 -1
  32. package/dist/boilerplates/@batijs/react-sentry/bati.config.mjs +1 -1
  33. package/dist/boilerplates/@batijs/sentry/bati.config.mjs +1 -14
  34. package/dist/boilerplates/@batijs/shadcn-ui/bati.config.mjs +4 -19
  35. package/dist/boilerplates/@batijs/shared/bati.config.mjs +1 -94
  36. package/dist/boilerplates/@batijs/shared-agents/bati.config.mjs +2 -7
  37. package/dist/boilerplates/@batijs/shared-agents/hooks/after.mjs +17 -7
  38. package/dist/boilerplates/@batijs/shared-agents/hooks/asset-boilerplates/shared-agents/compose.mjs +14 -35
  39. package/dist/boilerplates/@batijs/shared-agents/hooks/asset-packages/features/dist/{features-CStxEDu3.mjs → features-CGdfnf9U.mjs} +110 -84
  40. package/dist/boilerplates/@batijs/shared-agents/hooks/asset-packages/features/dist/index.mjs +5 -158
  41. package/dist/boilerplates/@batijs/shared-db/bati.config.mjs +1 -1
  42. package/dist/boilerplates/@batijs/shared-env/bati.config.mjs +1 -1
  43. package/dist/boilerplates/@batijs/shared-server/bati.config.mjs +1 -1
  44. package/dist/boilerplates/@batijs/shared-todo/bati.config.mjs +1 -1
  45. package/dist/boilerplates/@batijs/solid/bati.config.mjs +4 -18
  46. package/dist/boilerplates/@batijs/solid-better-auth/bati.config.mjs +1 -1
  47. package/dist/boilerplates/@batijs/solid-sentry/bati.config.mjs +1 -1
  48. package/dist/boilerplates/@batijs/sqlite/bati.config.mjs +1 -13
  49. package/dist/boilerplates/@batijs/storybook/bati.config.mjs +2 -14
  50. package/dist/boilerplates/@batijs/tailwindcss/bati.config.mjs +2 -27
  51. package/dist/boilerplates/@batijs/telefunc/bati.config.mjs +4 -20
  52. package/dist/boilerplates/@batijs/trpc/bati.config.mjs +4 -19
  53. package/dist/boilerplates/@batijs/ts-rest/bati.config.mjs +2 -14
  54. package/dist/boilerplates/@batijs/universal-deploy/bati.config.mjs +4 -21
  55. package/dist/boilerplates/@batijs/vercel/bati.config.mjs +1 -13
  56. package/dist/boilerplates/@batijs/vue/bati.config.mjs +2 -14
  57. package/dist/boilerplates/@batijs/vue-better-auth/bati.config.mjs +1 -1
  58. package/dist/boilerplates/@batijs/vue-sentry/bati.config.mjs +1 -1
  59. package/dist/index.js +2 -6
  60. package/package.json +5 -5
  61. package/dist/boilerplates/@batijs/shared-agents/hooks/asset-boilerplates/shared-agents/agents-md.mjs +0 -70
@@ -1,4 +1,4 @@
1
- //#region ../../packages/features/dist/features-CStxEDu3.js
1
+ //#region ../../packages/features/dist/features-CGdfnf9U.js
2
2
  /**
3
3
  * In forder to have an icon that has different colors based on dark/light mode:
4
4
  *
@@ -15,7 +15,10 @@ const features = [
15
15
  category: "Frontend Framework",
16
16
  label: "Vike",
17
17
  flag: "vike",
18
- llms: "https://vike.dev/llms.txt",
18
+ skill: {
19
+ description: "Vike — the full-stack framework this app runs on. Use when working with pages and file-based routing (`+Page`/`+route`/`+config`/`+data`/`+guard`), data fetching, navigation, rendering modes (SSR/SSG/SPA/streaming), `pageContext`, lifecycle hooks, `<head>`/SEO, or error pages.",
20
+ llms: "https://vike.dev/llms.txt"
21
+ },
19
22
  image: "data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaGFtbWVyIiB3aWR0aD0iNDcuMjE3IiBoZWlnaHQ9IjQ3LjIxNyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSItNTAgLTUwIDQ3LjIxNyA0Ny4yMTciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzAuMjksLTIxLjMpIj4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtLTguNTExLTEwLjQ0OSAxLjEyNiA0LjA2NCAyLjcwNy0yLjc2NXoiIGZpbGw9IiNhYmFiYWIiLz4KICAgPHBhdGggZD0ibS0yLjI3My0yNC40OTYtNi4yMzggMTQuMDQ3IDMuODMzIDEuMjk5IDYuMjM4LTE0LjA0OHoiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibS0yLjI3My0yNC40OTYgMy40NjUtMS4yMDQuMzY4IDIuNTAyeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTcuNTExIDQuNjc0LTIuNzA3IDIuNzY2LTIyLjE4OS0xMy44MjUgMi43MDctMi43NjV6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzgyODI4MiI+CiAgIDxwYXRoIGQ9Im0tMTAuNTI2IDIzLjcwNS0xLjE3IDIuNjM0IiBzdHJva2Utd2lkdGg9IjkuNiIvPgogICA8cGF0aCBkPSJtLTEzLjg5OSAyNi41MjhjLTEuODUxLTEuMTUzLTIuMzI2LTIuMTMzLTEuMDg3LTIuMjM5IDEuMjQtLjEwNiAzLjY0My43MDkgNS40OTQgMS44NjIgMS44NSAxLjE1MyAyLjMyNiAyLjEzMiAxLjA4NiAyLjIzOC0xLjIzOS4xMDYtMy42NDItLjcwOC01LjQ5My0xLjg2MSIgZmlsbD0iIzgyODI4MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgIDxwYXRoIGQ9Im0tMTIuNzMgMjMuODk0YzEuODUxIDEuMTUzIDQuMjU1IDEuOTY3IDUuNDk0IDEuODYxcy43NjQtMS4wODUtMS4wODctMi4yMzhjLTEuODUtMS4xNTMtNC4yNTQtMS45NjctNS40OTMtMS44NjEtMS4yNC4xMDYtLjc2NCAxLjA4NSAxLjA4NiAyLjIzOCIgZmlsbD0iIzgyODI4MiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzdhN2E3YSI+CiAgIDxwYXRoIGQ9Im0tOS44NDQgMjIuMTY5LS4zOS44NzgiIHN0cm9rZS13aWR0aD0iOS4xIi8+CiAgIDxwYXRoIGQ9Im0tMTIuNDM3IDIzLjIzNWMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzggMS4yNC0uMTA2IDMuNjQzLjcwOCA1LjQ5NCAxLjg2MSAxLjg1IDEuMTUzIDIuMzI2IDIuMTMzIDEuMDg2IDIuMjM5LTEuMjM5LjEwNi0zLjY0Mi0uNzA5LTUuNDkzLTEuODYyIiBmaWxsPSIjN2E3YTdhIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICAgPHBhdGggZD0ibS0xMi4wNDcgMjIuMzU3YzEuODUgMS4xNTMgNC4yNTQgMS45NjggNS40OTMgMS44NjIgMS4yNC0uMTA2Ljc2NC0xLjA4Ni0xLjA4Ny0yLjIzOS0xLjg1LTEuMTUzLTQuMjU0LTEuOTY3LTUuNDkzLTEuODYxcy0uNzY0IDEuMDg1IDEuMDg3IDIuMjM4IiBmaWxsPSIjN2E3YTdhIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICA8L2c+CiAgPGcgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgPHBhdGggZD0ibS0xNi43MS05Ljc0OCA4LjE5OS0uNzAxIDEuMTI2IDQuMDY0LTguMTk5LjcwMXoiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibTIzLjc0OS05LjM3My02LjIzOCAxNC4wNDctMjIuMTg5LTEzLjgyNCA2LjIzOC0xNC4wNDh6IiBmaWxsPSIjNzU3NTc1Ii8+CiAgIDxwYXRoIGQ9Im0xMC4yNzEtMTYuMDczIDMuNzUxIDMuNTM0Yy4wNjIuMDU4LjA4My4xNTYuMDUyLjIzOGwtMS45NSA1LjEyOGMtLjA0Ni4xMjEtLjE4LjE1My0uMjY4LjA2NWwtMS4wMjQtMS4wM2MtLjA5NS0uMDk2LS4yNDItLjA0OC0uMjc1LjA5MWwtLjUxNiAyLjE1MmMtLjAzNC4xNDUtLjE5MS4xOS0uMjg0LjA4MiAwIDAtLjYwNi0uNjk2LS42MDYtLjY5Ni0uMDk0LS4xMDgtLjI1LS4wNjMtLjI4NS4wODJsLS44MDMgMy4zODRjLS4wNS4yMTItLjMxNy4xNzgtLjMzNi0uMDQzbC0uMDE0LS4xNDdzLjA1OC05Ljg5Mi4wNTgtOS44OTJjLjAwMS0uMTY1LjE2NS0uMjUzLjI3Ny0uMTQ4bDEuMDc3IDEuMDA5Yy4xMDEuMDk1LjI1LjAzNC4yNzQtLjExMWwuNTk3LTMuNTg3Yy4wMjUtLjE0Ni4xNzQtLjIwNi4yNzUtLjExMXoiIGZpbGw9IiNmYmJmMjgiIHN0cm9rZT0iI2ZiYmYyOCIgc3Ryb2tlLXdpZHRoPSIuNiIvPgogICA8cGF0aCBkPSJtLTE2LjcxLTkuNzQ4IDguMTk5LS43MDEgNi4yMzgtMTQuMDQ3LTguMTk5LjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICA8L2c+CiAgPHBhdGggZD0ibS0xLjc1NCAzLjk1MS03Ljk5MiAxNy45OTgiIHN0cm9rZT0iIzkxNTEyYiIgc3Ryb2tlLXdpZHRoPSI4LjYiLz4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtLTExLjk1IDIyLjEzOGMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzggMS4yNC0uMTA2IDMuNjQzLjcwOCA1LjQ5NCAxLjg2MXMyLjMyNiAyLjEzMiAxLjA4NyAyLjIzOGMtMS4yNC4xMDYtMy42NDMtLjcwOC01LjQ5NC0xLjg2MSIgZmlsbD0iIzkxNTEyYiIvPgogICA8cGF0aCBkPSJtLTMuOTU4IDQuMTM5YzEuODUxIDEuMTUzIDQuMjU0IDEuOTY4IDUuNDk0IDEuODYyIDEuMjM5LS4xMDYuNzY0LTEuMDg2LTEuMDg3LTIuMjM5cy00LjI1NC0xLjk2Ny01LjQ5My0xLjg2MWMtMS4yNC4xMDYtLjc2NCAxLjA4NSAxLjA4NiAyLjIzOCIgZmlsbD0iIzkxNTEyYiIvPgogICA8cGF0aCBkPSJtMS4xOTItMjUuNy4zNjggMi41MDIgMjIuMTg5IDEzLjgyNS0uMzY4LTIuNTAzeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtLTEwLjQ3Mi0yMy43OTUgOC4xOTktLjcwMSAzLjQ2NS0xLjIwNC04LjE5OS43MDF6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgPC9nPgogIDxnIHN0cm9rZT0iIzZlNmU2ZSI+CiAgIDxwYXRoIGQ9Im0tLjQ4NyAxLjA5Ny0xLjE3IDIuNjM0IiBzdHJva2Utd2lkdGg9IjkuMSIvPgogICA8cGF0aCBkPSJtLTMuODYgMy45MmMtMS44NTEtMS4xNTMtMi4zMjYtMi4xMzItMS4wODctMi4yMzhzMy42NDMuNzA4IDUuNDkzIDEuODYxYzEuODUxIDEuMTUzIDIuMzI3IDIuMTMyIDEuMDg3IDIuMjM4LTEuMjM5LjEwNi0zLjY0My0uNzA4LTUuNDkzLTEuODYxIiBmaWxsPSIjNmU2ZTZlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjUiLz4KICAgPHBhdGggZD0ibS0yLjY5MSAxLjI4NmMxLjg1MSAxLjE1MyA0LjI1NCAxLjk2NyA1LjQ5NCAxLjg2MSAxLjIzOS0uMTA2Ljc2NC0xLjA4NS0xLjA4Ny0yLjIzOHMtNC4yNTQtMS45NjctNS40OTMtMS44NjFjLTEuMjQuMTA2LS43NjQgMS4wODUgMS4wODYgMi4yMzgiIGZpbGw9IiM2ZTZlNmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIuNSIvPgogIDwvZz4KICA8ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTMuNDY1IDEuMjA0IDIuNzA3LTIuNzY2eiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTQuODA0IDcuNDQtOC4xOTkuNzAxLTIyLjE4OS0xMy44MjUgOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS0xNi43MS05Ljc0OCAxLjEyNiA0LjA2NC0uMzY3LTIuNTAyeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMjQuNTA3LTcuODEyLTYuMjM4IDE0LjA0OC0uNzU4LTEuNTYyIDYuMjM4LTE0LjA0N3oiIGZpbGw9IiM5NDk0OTQiLz4KICAgPHBhdGggZD0ibS0xMC40NzItMjMuNzk1LTYuMjM4IDE0LjA0Ny43NTkgMS41NjIgNi4yMzctMTQuMDQ4eiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtMjQuNTA3LTcuODEyLTEuMTI2LTQuMDY0LjM2OCAyLjUwM3oiIGZpbGw9IiNhYmFiYWIiLz4KICAgPHBhdGggZD0ibTIzLjM4MS0xMS44NzYtOC4xOTkuNzAxLTIyLjE4OS0xMy44MjQgOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS0xMC40NzItMjMuNzk1IDMuNDY1LTEuMjA0LTIuNzA3IDIuNzY1eiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTguMTk5LjcwMS0zLjQ2NSAxLjIwNCA4LjE5OS0uNzAxeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtLTE1Ljk1MS04LjE4Ni4zNjcgMi41MDIgMjIuMTg5IDEzLjgyNS0uMzY3LTIuNTAzeiIgZmlsbD0iIzk0OTQ5NCIvPgogICA8cGF0aCBkPSJtMTguMjY5IDYuMjM2LTguMTk5LjcwMSA2LjIzOC0xNC4wNDggOC4xOTktLjcwMXoiIGZpbGw9IiM3NTc1NzUiLz4KICAgPHBhdGggZD0ibS05LjcxNC0yMi4yMzQtNi4yMzcgMTQuMDQ4IDIyLjE4OSAxMy44MjQgNi4yMzctMTQuMDQ3eiIgZmlsbD0iIzc1NzU3NSIvPgogICA8cGF0aCBkPSJtMi41NDUtMTIuNzktNC41ODMtMS42NTljLS4wNzYtLjAyNy0uMTU2LjAwOC0uMTk1LjA4NSAwIDAtMi40NjMgNC44MDgtMi40NjMgNC44MDgtLjA1OC4xMTQtLjAwNS4yNjMuMTA3LjI5OGwxLjI5Ni40MTZjLjEyMi4wMzkuMTcxLjIxLjA5My4zMjEgMCAwLTEuMjA1IDEuNzIyLTEuMjA1IDEuNzIyLS4wODEuMTE2LS4wMjQuMjk0LjEwNS4zMjVsLjgyNy4xOTZjLjEyOC4wMzEuMTg2LjIwOS4xMDQuMzI1IDAgMC0xLjg5OSAyLjcwMS0xLjg5OSAyLjcwMS0uMTE4LjE2OS4wNTYuNDEuMjIuMzA0bC4xMS0uMDcgNi44NDktNS42NjFjLjExNS0uMDk1LjA4My0uMzA0LS4wNTQtLjM1NGwtMS4zMTItLjQ4Yy0uMTIzLS4wNDUtLjE2NS0uMjI0LS4wNzgtLjMzMSAwIDAgMi4xNTctMi42MTUgMi4xNTctMi42MTUuMDg3LS4xMDYuMDQ1LS4yODYtLjA3OS0uMzMxeiIgZmlsbD0iI2ZiYmYyOCIgc3Ryb2tlPSIjZmJiZjI4IiBzdHJva2Utd2lkdGg9Ii42Ii8+CiAgIDxwYXRoIGQ9Im0yNC41MDctNy44MTItOC4xOTkuNzAxLTEuMTI2LTQuMDY0IDguMTk5LS43MDF6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xNS4xODItMTEuMTc1LTIuNzA3IDIuNzY2LTIyLjE4OS0xMy44MjUgMi43MDctMi43NjV6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xMC4wNyA2LjkzNy0zLjQ2NSAxLjIwNC0uMzY3LTIuNTAzeiIgZmlsbD0iI2FiYWJhYiIvPgogICA8cGF0aCBkPSJtMTYuMzA4LTcuMTExLTYuMjM4IDE0LjA0OC0zLjgzMi0xLjI5OSA2LjIzNy0xNC4wNDd6IiBmaWxsPSIjOTQ5NDk0Ii8+CiAgIDxwYXRoIGQ9Im0xNi4zMDgtNy4xMTEtMS4xMjYtNC4wNjQtMi43MDcgMi43NjZ6IiBmaWxsPSIjYWJhYmFiIi8+CiAgPC9nPgogPC9nPgo8L3N2Zz4K",
20
23
  url: "https://vike.dev",
21
24
  tagline: "Flexible, lean, reliable, community-driven, fast Vite-based frontend framework",
@@ -35,7 +38,10 @@ const features = [
35
38
  category: "UI Framework",
36
39
  label: "React",
37
40
  flag: "react",
38
- llms: "https://react.dev/llms.txt",
41
+ skill: {
42
+ description: "React (via `vike-react`) — the UI library this app renders with. Use when writing or debugging components, hooks (`useState`/`useEffect`/`useContext`), refs, context, or fixing SSR/hydration mismatches.",
43
+ llms: "https://react.dev/llms.txt"
44
+ },
39
45
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjEzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyOCI+PHBhdGggZmlsbD0iIzAwRDhGRiIgZD0iTTIxMC40ODMgNzMuODI0YTE3MS40OSAxNzEuNDkgMCAwIDAtOC4yNC0yLjU5N2MuNDY1LTEuOS44OTMtMy43NzcgMS4yNzMtNS42MjFjNi4yMzgtMzAuMjgxIDIuMTYtNTQuNjc2LTExLjc2OS02Mi43MDhjLTEzLjM1NS03LjctMzUuMTk2LjMyOS01Ny4yNTQgMTkuNTI2YTE3MS4yMyAxNzEuMjMgMCAwIDAtNi4zNzUgNS44NDhhMTU1Ljg2NiAxNTUuODY2IDAgMCAwLTQuMjQxLTMuOTE3QzEwMC43NTkgMy44MjkgNzcuNTg3LTQuODIyIDYzLjY3MyAzLjIzM0M1MC4zMyAxMC45NTcgNDYuMzc5IDMzLjg5IDUxLjk5NSA2Mi41ODhhMTcwLjk3NCAxNzAuOTc0IDAgMCAwIDEuODkyIDguNDhjLTMuMjguOTMyLTYuNDQ1IDEuOTI0LTkuNDc0IDIuOThDMTcuMzA5IDgzLjQ5OCAwIDk4LjMwNyAwIDExMy42NjhjMCAxNS44NjUgMTguNTgyIDMxLjc3OCA0Ni44MTIgNDEuNDI3YTE0NS41MiAxNDUuNTIgMCAwIDAgNi45MjEgMi4xNjVhMTY3LjQ2NyAxNjcuNDY3IDAgMCAwLTIuMDEgOS4xMzhjLTUuMzU0IDI4LjItMS4xNzMgNTAuNTkxIDEyLjEzNCA1OC4yNjZjMTMuNzQ0IDcuOTI2IDM2LjgxMi0uMjIgNTkuMjczLTE5Ljg1NWExNDUuNTY3IDE0NS41NjcgMCAwIDAgNS4zNDItNC45MjNhMTY4LjA2NCAxNjguMDY0IDAgMCAwIDYuOTIgNi4zMTRjMjEuNzU4IDE4LjcyMiA0My4yNDYgMjYuMjgyIDU2LjU0IDE4LjU4NmMxMy43MzEtNy45NDkgMTguMTk0LTMyLjAwMyAxMi40LTYxLjI2OGExNDUuMDE2IDE0NS4wMTYgMCAwIDAtMS41MzUtNi44NDJjMS42Mi0uNDggMy4yMS0uOTc0IDQuNzYtMS40ODhjMjkuMzQ4LTkuNzIzIDQ4LjQ0My0yNS40NDMgNDguNDQzLTQxLjUyYzAtMTUuNDE3LTE3Ljg2OC0zMC4zMjYtNDUuNTE3LTM5Ljg0NFptLTYuMzY1IDcwLjk4NGMtMS40LjQ2My0yLjgzNi45MS00LjMgMS4zNDVjLTMuMjQtMTAuMjU3LTcuNjEyLTIxLjE2My0xMi45NjMtMzIuNDMyYzUuMTA2LTExIDkuMzEtMjEuNzY3IDEyLjQ1OS0zMS45NTdjMi42MTkuNzU4IDUuMTYgMS41NTcgNy42MSAyLjRjMjMuNjkgOC4xNTYgMzguMTQgMjAuMjEzIDM4LjE0IDI5LjUwNGMwIDkuODk2LTE1LjYwNiAyMi43NDMtNDAuOTQ2IDMxLjE0Wm0tMTAuNTE0IDIwLjgzNGMyLjU2MiAxMi45NCAyLjkyNyAyNC42NCAxLjIzIDMzLjc4N2MtMS41MjQgOC4yMTktNC41OSAxMy42OTgtOC4zODIgMTUuODkzYy04LjA2NyA0LjY3LTI1LjMyLTEuNC00My45MjctMTcuNDEyYTE1Ni43MjYgMTU2LjcyNiAwIDAgMS02LjQzNy01Ljg3YzcuMjE0LTcuODg5IDE0LjQyMy0xNy4wNiAyMS40NTktMjcuMjQ2YzEyLjM3Ni0xLjA5OCAyNC4wNjgtMi44OTQgMzQuNjcxLTUuMzQ1YTEzNC4xNyAxMzQuMTcgMCAwIDEgMS4zODYgNi4xOTNaTTg3LjI3NiAyMTQuNTE1Yy03Ljg4MiAyLjc4My0xNC4xNiAyLjg2My0xNy45NTUuNjc1Yy04LjA3NS00LjY1Ny0xMS40MzItMjIuNjM2LTYuODUzLTQ2Ljc1MmExNTYuOTIzIDE1Ni45MjMgMCAwIDEgMS44NjktOC40OTljMTAuNDg2IDIuMzIgMjIuMDkzIDMuOTg4IDM0LjQ5OCA0Ljk5NGM3LjA4NCA5Ljk2NyAxNC41MDEgMTkuMTI4IDIxLjk3NiAyNy4xNWExMzQuNjY4IDEzNC42NjggMCAwIDEtNC44NzcgNC40OTJjLTkuOTMzIDguNjgyLTE5Ljg4NiAxNC44NDItMjguNjU4IDE3Ljk0Wk01MC4zNSAxNDQuNzQ3Yy0xMi40ODMtNC4yNjctMjIuNzkyLTkuODEyLTI5Ljg1OC0xNS44NjNjLTYuMzUtNS40MzctOS41NTUtMTAuODM2LTkuNTU1LTE1LjIxNmMwLTkuMzIyIDEzLjg5Ny0yMS4yMTIgMzcuMDc2LTI5LjI5M2MyLjgxMy0uOTggNS43NTctMS45MDUgOC44MTItMi43NzNjMy4yMDQgMTAuNDIgNy40MDYgMjEuMzE1IDEyLjQ3NyAzMi4zMzJjLTUuMTM3IDExLjE4LTkuMzk5IDIyLjI0OS0xMi42MzQgMzIuNzkyYTEzNC43MTggMTM0LjcxOCAwIDAgMS02LjMxOC0xLjk3OVptMTIuMzc4LTg0LjI2Yy00LjgxMS0yNC41ODctMS42MTYtNDMuMTM0IDYuNDI1LTQ3Ljc4OWM4LjU2NC00Ljk1OCAyNy41MDIgMi4xMTEgNDcuNDYzIDE5LjgzNWExNDQuMzE4IDE0NC4zMTggMCAwIDEgMy44NDEgMy41NDVjLTcuNDM4IDcuOTg3LTE0Ljc4NyAxNy4wOC0yMS44MDggMjYuOTg4Yy0xMi4wNCAxLjExNi0yMy41NjUgMi45MDgtMzQuMTYxIDUuMzA5YTE2MC4zNDIgMTYwLjM0MiAwIDAgMS0xLjc2LTcuODg3Wm0xMTAuNDI3IDI3LjI2OGEzNDcuOCAzNDcuOCAwIDAgMC03Ljc4NS0xMi44MDNjOC4xNjggMS4wMzMgMTUuOTk0IDIuNDA0IDIzLjM0MyA0LjA4Yy0yLjIwNiA3LjA3Mi00Ljk1NiAxNC40NjUtOC4xOTMgMjIuMDQ1YTM4MS4xNTEgMzgxLjE1MSAwIDAgMC03LjM2NS0xMy4zMjJabS00NS4wMzItNDMuODYxYzUuMDQ0IDUuNDY1IDEwLjA5NiAxMS41NjYgMTUuMDY1IDE4LjE4NmEzMjIuMDQgMzIyLjA0IDAgMCAwLTMwLjI1Ny0uMDA2YzQuOTc0LTYuNTU5IDEwLjA2OS0xMi42NTIgMTUuMTkyLTE4LjE4Wk04Mi44MDIgODcuODNhMzIzLjE2NyAzMjMuMTY3IDAgMCAwLTcuMjI3IDEzLjIzOGMtMy4xODQtNy41NTMtNS45MDktMTQuOTgtOC4xMzQtMjIuMTUyYzcuMzA0LTEuNjM0IDE1LjA5My0yLjk3IDIzLjIwOS0zLjk4NGEzMjEuNTI0IDMyMS41MjQgMCAwIDAtNy44NDggMTIuODk3Wm04LjA4MSA2NS4zNTJjLTguMzg1LS45MzYtMTYuMjkxLTIuMjAzLTIzLjU5My0zLjc5M2MyLjI2LTcuMyA1LjA0NS0xNC44ODUgOC4yOTgtMjIuNmEzMjEuMTg3IDMyMS4xODcgMCAwIDAgNy4yNTcgMTMuMjQ2YzIuNTk0IDQuNDggNS4yOCA4Ljg2OCA4LjAzOCAxMy4xNDdabTM3LjU0MiAzMS4wM2MtNS4xODQtNS41OTItMTAuMzU0LTExLjc3OS0xNS40MDMtMTguNDMzYzQuOTAyLjE5MiA5Ljg5OS4yOSAxNC45NzguMjljNS4yMTggMCAxMC4zNzYtLjExNyAxNS40NTMtLjM0M2MtNC45ODUgNi43NzQtMTAuMDE4IDEyLjk3LTE1LjAyOCAxOC40ODZabTUyLjE5OC01Ny44MTdjMy40MjIgNy44IDYuMzA2IDE1LjM0NSA4LjU5NiAyMi41MmMtNy40MjIgMS42OTQtMTUuNDM2IDMuMDU4LTIzLjg4IDQuMDcxYTM4Mi40MTcgMzgyLjQxNyAwIDAgMCA3Ljg1OS0xMy4wMjZhMzQ3LjQwMyAzNDcuNDAzIDAgMCAwIDcuNDI1LTEzLjU2NVptLTE2Ljg5OCA4LjEwMWEzNTguNTU3IDM1OC41NTcgMCAwIDEtMTIuMjgxIDE5LjgxNWEzMjkuNCAzMjkuNCAwIDAgMS0yMy40NDQuODIzYy03Ljk2NyAwLTE1LjcxNi0uMjQ4LTIzLjE3OC0uNzMyYTMxMC4yMDIgMzEwLjIwMiAwIDAgMS0xMi41MTMtMTkuODQ2aC4wMDFhMzA3LjQxIDMwNy40MSAwIDAgMS0xMC45MjMtMjAuNjI3YTMxMC4yNzggMzEwLjI3OCAwIDAgMSAxMC44OS0yMC42MzdsLS4wMDEuMDAxYTMwNy4zMTggMzA3LjMxOCAwIDAgMSAxMi40MTMtMTkuNzYxYzcuNjEzLS41NzYgMTUuNDItLjg3NiAyMy4zMS0uODc2SDEyOGM3LjkyNiAwIDE1Ljc0My4zMDMgMjMuMzU0Ljg4M2EzMjkuMzU3IDMyOS4zNTcgMCAwIDEgMTIuMzM1IDE5LjY5NWEzNTguNDg5IDM1OC40ODkgMCAwIDEgMTEuMDM2IDIwLjU0YTMyOS40NzIgMzI5LjQ3MiAwIDAgMS0xMSAyMC43MjJabTIyLjU2LTEyMi4xMjRjOC41NzIgNC45NDQgMTEuOTA2IDI0Ljg4MSA2LjUyIDUxLjAyNmMtLjM0NCAxLjY2OC0uNzMgMy4zNjctMS4xNSA1LjA5Yy0xMC42MjItMi40NTItMjIuMTU1LTQuMjc1LTM0LjIzLTUuNDA4Yy03LjAzNC0xMC4wMTctMTQuMzIzLTE5LjEyNC0yMS42NC0yNy4wMDhhMTYwLjc4OSAxNjAuNzg5IDAgMCAxIDUuODg4LTUuNGMxOC45LTE2LjQ0NyAzNi41NjQtMjIuOTQxIDQ0LjYxMi0xOC4zWk0xMjggOTAuODA4YzEyLjYyNSAwIDIyLjg2IDEwLjIzNSAyMi44NiAyMi44NnMtMTAuMjM1IDIyLjg2LTIyLjg2IDIyLjg2cy0yMi44Ni0xMC4yMzUtMjIuODYtMjIuODZzMTAuMjM1LTIyLjg2IDIyLjg2LTIyLjg2WiIvPjwvc3ZnPg==",
40
46
  url: "https://react.dev",
41
47
  spectrum: "beaten_path",
@@ -54,7 +60,10 @@ const features = [
54
60
  category: "UI Framework",
55
61
  label: "Vue",
56
62
  flag: "vue",
57
- llms: "https://vuejs.org/llms.txt",
63
+ skill: {
64
+ description: "Vue 3 (via `vike-vue`) — the UI framework this app renders with. Use when writing Single-File Components, using the Composition API (`ref`/`reactive`/`computed`/`watch`), lifecycle, or fixing SSR/hydration mismatches.",
65
+ llms: "https://vuejs.org/llms.txt"
66
+ },
58
67
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE2ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyMSI+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0iTTIwNC44IDBIMjU2TDEyOCAyMjAuOEwwIDBoOTcuOTJMMTI4IDUxLjJMMTU3LjQ0IDBoNDcuMzZaIi8+PHBhdGggZmlsbD0iIzQxQjg4MyIgZD0ibTAgMGwxMjggMjIwLjhMMjU2IDBoLTUxLjJMMTI4IDEzMi40OEw1MC41NiAwSDBaIi8+PHBhdGggZmlsbD0iIzM1NDk1RSIgZD0iTTUwLjU2IDBMMTI4IDEzMy4xMkwyMDQuOCAwaC00Ny4zNkwxMjggNTEuMkw5Ny45MiAwSDUwLjU2WiIvPjwvc3ZnPg==",
59
68
  url: "https://vuejs.org",
60
69
  tagline: "The Progressive JavaScript Framework",
@@ -78,7 +87,10 @@ const features = [
78
87
  category: "UI Framework",
79
88
  label: "SolidJS",
80
89
  flag: "solid",
81
- llms: "https://docs.solidjs.com/llms.txt",
90
+ skill: {
91
+ description: "SolidJS (via `vike-solid`) — the UI framework this app renders with. Use when writing components with signals/stores, fine-grained reactivity (`createSignal`/`createEffect`/`createMemo`), control flow (`<Show>`/`<For>`), or fixing SSR/hydration issues.",
92
+ llms: "https://docs.solidjs.com/llms.txt"
93
+ },
82
94
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjA4ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIyNTYgMjM5IDI1NiAyMzkiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0ibG9nb3NTb2xpZGpzSWNvbjAiIHgxPSIyNy41IiB4Mj0iMTUyIiB5MT0iMyIgeTI9IjYzLjUiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjNzZiM2UxIi8+PHN0b3Agb2Zmc2V0PSIuMyIgc3RvcC1jb2xvcj0iI2RjZjJmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc2YjNlMSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJsb2dvc1NvbGlkanNJY29uMSIgeDE9Ijk1LjgiIHgyPSI3NCIgeTE9IjMyLjYiIHkyPSIxMDUuMiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgyNDkuNTYgMjMzLjEyKSBzY2FsZSgxLjYxMDA2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzc2YjNlMSIvPjxzdG9wIG9mZnNldD0iLjUiIHN0b3AtY29sb3I9IiM0Mzc3YmIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxZjNiNzciLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibG9nb3NTb2xpZGpzSWNvbjIiIHgxPSIxOC40IiB4Mj0iMTQ0LjMiIHkxPSI2NC4yIiB5Mj0iMTQ5LjgiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMzMTVhYTkiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjNTE4YWM4Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMzE1YWE5Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxvZ29zU29saWRqc0ljb24zIiB4MT0iNzUuMiIgeDI9IjI0LjQiIHkxPSI3NC41IiB5Mj0iMjYwLjgiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjQ5LjU2IDIzMy4xMikgc2NhbGUoMS42MTAwNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM0Mzc3YmIiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjMWEzMzZiIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMWEzMzZiIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZmlsbD0iIzc2YjNlMSIgZD0iTTUxMiAyODkuNDcycy04NS4zMzMtNjIuNzkxLTE1MS4zNDctNDguMzAxbC00LjgyOSAxLjYxYy05LjY2IDMuMjIxLTE3LjcxMSA4LjA1LTIyLjU0MiAxNC40OTFsLTMuMjE5IDQuODI5bC0yNC4xNTIgNDEuODYybDQxLjg2MyA4LjA1MWMxNy43MSAxMS4yNyA0MC4yNTEgMTYuMTAxIDYxLjE4MiAxMS4yN2w3NC4wNjMgMTQuNDkxTDUxMiAyODkuNDcyWiIvPjxwYXRoIGZpbGw9InVybCgjbG9nb3NTb2xpZGpzSWNvbjApIiBkPSJNNTEyIDI4OS40NzJzLTg1LjMzMy02Mi43OTEtMTUxLjM0Ny00OC4zMDFsLTQuODI5IDEuNjFjLTkuNjYgMy4yMjEtMTcuNzExIDguMDUtMjIuNTQyIDE0LjQ5MWwtMy4yMTkgNC44MjlsLTI0LjE1MiA0MS44NjJsNDEuODYzIDguMDUxYzE3LjcxIDExLjI3IDQwLjI1MSAxNi4xMDEgNjEuMTgyIDExLjI3bDc0LjA2MyAxNC40OTFMNTEyIDI4OS40NzJaIiBvcGFjaXR5PSIuMyIvPjxwYXRoIGZpbGw9IiM1MThhYzgiIGQ9Im0zMzMuMjgyIDI4OS40NzJsLTYuNDM5IDEuNjExYy0yNy4zNzEgOC4wNS0zNS40MjEgMzMuODExLTIwLjkzMiA1Ni4zNTJjMTYuMTAxIDIwLjkzMSA0OS45MTMgMzIuMjAxIDc3LjI4NCAyNC4xNTFsOTkuODI0LTMzLjgxMXMtODUuMzM0LTYyLjc5Mi0xNDkuNzM3LTQ4LjMwM1oiLz48cGF0aCBmaWxsPSJ1cmwoI2xvZ29zU29saWRqc0ljb24xKSIgZD0ibTMzMy4yODIgMjg5LjQ3MmwtNi40MzkgMS42MTFjLTI3LjM3MSA4LjA1LTM1LjQyMSAzMy44MTEtMjAuOTMyIDU2LjM1MmMxNi4xMDEgMjAuOTMxIDQ5LjkxMyAzMi4yMDEgNzcuMjg0IDI0LjE1MWw5OS44MjQtMzMuODExcy04NS4zMzQtNjIuNzkyLTE0OS43MzctNDguMzAzWiIgb3BhY2l0eT0iLjMiLz48cGF0aCBmaWxsPSJ1cmwoI2xvZ29zU29saWRqc0ljb24yKSIgZD0iTTQ2NS4zMDggMzYxLjkyNWMtMTguNDM5LTIzLjAzNi00OS4wMDgtMzIuNTg4LTc3LjI4My0yNC4xNWwtOTkuODIzIDMyLjIwMUwyNTYgNDI2LjMyOGwxODAuMzI3IDMwLjU5MmwzMi4yMDEtNTcuOTYzYzYuNDQxLTExLjI3MSA0LjgzMS0yNC4xNS0zLjIyLTM3LjAzMloiLz48cGF0aCBmaWxsPSJ1cmwoI2xvZ29zU29saWRqc0ljb24zKSIgZD0iTTQzMy4xMDYgNDE4LjI3N2MtMTguNDM5LTIzLjAzNi00OS4wMDYtMzIuNTg4LTc3LjI4Mi0yNC4xNUwyNTYgNDI2LjMyOHM4NS4zMzMgNjQuNDAyIDE1MS4zNDYgNDguMzAzbDQuODMtMS42MTJjMjcuMzcxLTguMDQ5IDM3LjAzMS0zMy44MSAyMC45My01NC43NDJaIi8+PC9zdmc+",
83
95
  url: "https://www.solidjs.com",
84
96
  spectrum: "bleeding_edge",
@@ -130,7 +142,10 @@ const features = [
130
142
  category: "UI Component Libraries",
131
143
  label: "daisyUI",
132
144
  flag: "daisyui",
133
- llms: "https://daisyui.com/llms.txt",
145
+ skill: {
146
+ description: "daisyUI — semantic component classes on top of Tailwind (`btn`, `card`, `modal`, `alert`, …). Use when building UI with daisyUI components, using its color names, or configuring and switching themes.",
147
+ llms: "https://daisyui.com/llms.txt"
148
+ },
134
149
  dependsOn: ["tailwindcss"],
135
150
  image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMzInIGhlaWdodD0nMzInIHZpZXdCb3g9JzAgMCA0MTUgNDE1JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxyZWN0IHg9JzgyLjUnIHk9JzI5MCcgd2lkdGg9JzI1MCcgaGVpZ2h0PScxMjUnIHJ4PSc2Mi41JyBmaWxsPScjMUFEMUE1Jz48L3JlY3Q+PGNpcmNsZSBjeD0nMjA3LjUnIGN5PScxMzUnIHI9JzEzMCcgZmlsbD0nYmxhY2snIGZpbGwtb3BhY2l0eT0nLjMnPjwvY2lyY2xlPjxjaXJjbGUgY3g9JzIwNy41JyBjeT0nMTM1JyByPScxMjUnIGZpbGw9J3doaXRlJz48L2NpcmNsZT48Y2lyY2xlIGN4PScyMDcuNScgY3k9JzEzNScgcj0nNTYnIGZpbGw9JyNGRjk5MDMnPjwvY2lyY2xlPjwvc3ZnPg==",
136
151
  url: "https://daisyui.com",
@@ -145,7 +160,10 @@ const features = [
145
160
  category: "UI Component Libraries",
146
161
  label: "shadcn/ui",
147
162
  flag: "shadcn-ui",
148
- llms: "https://ui.shadcn.com/llms.txt",
163
+ skill: {
164
+ description: "shadcn/ui — accessible Radix-based components copied into the app via its CLI. Use when adding a component (`shadcn add`), building forms, theming or dark mode, or working with `components.json` / the registry.",
165
+ llms: "https://ui.shadcn.com/llms.txt"
166
+ },
149
167
  dependsOn: ["tailwindcss", "react"],
150
168
  image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMi4yMTkgMTEuNzg0IDExLjc4NCAyMi4yMTljLS40MDcuNDA3LS40MDcgMS4wNjggMCAxLjQ3Ni40MDcuNDA3IDEuMDY4LjQwNyAxLjQ3NiAwTDIzLjY5NSAxMy4yNmMuNDA3LS40MDguNDA3LTEuMDY5IDAtMS40NzYtLjQwOC0uNDA3LTEuMDY5LS40MDctMS40NzYgMFpNMjAuMTMyLjMwNS4zMDUgMjAuMTMyYy0uNDA3LjQwNy0uNDA3IDEuMDY4IDAgMS40NzYuNDA4LjQwNyAxLjA2OS40MDcgMS40NzYgMEwyMS42MDggMS43ODFjLjQwNy0uNDA3LjQwNy0xLjA2OCAwLTEuNDc2LS40MDgtLjQwNy0xLjA2OS0uNDA3LTEuNDc2IDBaIi8+PC9zdmc+",
151
169
  url: "https://ui.shadcn.com",
@@ -160,7 +178,10 @@ const features = [
160
178
  category: "UI Component Libraries",
161
179
  label: "Mantine",
162
180
  flag: "mantine",
163
- llms: "https://mantine.dev/llms.txt",
181
+ skill: {
182
+ description: "Mantine — a React components and hooks library. Use when building UI with `@mantine/*` components, using Mantine hooks, `@mantine/form`, dates or charts, or customizing the theme via `MantineProvider`.",
183
+ llms: "https://mantine.dev/llms.txt"
184
+ },
164
185
  dependsOn: ["react"],
165
186
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxNjMgMTYzIj48cGF0aCBmaWxsPSIjMzM5QUYwIiBkPSJNMTYyLjE2MiA4MS41YzAtNDUuMDExLTM2LjMwMS04MS41LTgxLjA4LTgxLjVDMzYuMzAxIDAgMCAzNi40ODkgMCA4MS41IDAgMTI2LjUxIDM2LjMwMSAxNjMgODEuMDgxIDE2M3M4MS4wODEtMzYuNDkgODEuMDgxLTgxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjUuOTgzIDQzLjA0OWE2LjIzIDYuMjMgMCAwIDAtLjMzNiA2Ljg4NCA2LjEgNi4xIDAgMCAwIDEuNjE4IDEuNzg2YzkuNDQ0IDcuMDM2IDE0Ljg2NiAxNy43OTQgMTQuODY2IDI5LjUycy01LjQyMiAyMi40ODQtMTQuODY2IDI5LjUyYTYuMiA2LjIgMCAwIDAtMS42MTYgMS43ODYgNi4yIDYuMiAwIDAgMC0uNjk0IDQuNjkzIDYuMiA2LjIgMCAwIDAgMS4wMjggMi4xODYgNi4xNSA2LjE1IDAgMCAwIDYuNDU3IDIuMzE5IDYuMiA2LjIgMCAwIDAgMi4xNzctMS4wMzUgNTAgNTAgMCAwIDAgNy45NDctNy4zOWgxNy40OTNjMy40MDYgMCA2LjE3NC0yLjc3MiA2LjE3NC02LjE5NHMtMi43NjItNi4xOTQtNi4xNzQtNi4xOTRoLTkuNjU1YTQ5LjIgNDkuMiAwIDAgMCA0LjA3MS0xOS42OSA0OS4yIDQ5LjIgMCAwIDAtNC4wNy0xOS42OTJoOS42NmMzLjQwNiAwIDYuMTczLTIuNzcxIDYuMTczLTYuMTk0cy0yLjc2Mi02LjE5My02LjE3My02LjE5M0g4Mi41NzRhNTAgNTAgMCAwIDAtNy45NTItNy4zOTcgNi4xNSA2LjE1IDAgMCAwLTQuNTc4LTEuMTUzIDYuMiA2LjIgMCAwIDAtNC4wNTUgMi40Mzh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTYuMjM2IDc5LjM5MWE5LjMgOS4zIDAgMCAxIC42MzItMy42MDggOS4zIDkuMyAwIDAgMSAxLjk2Ny0zLjA3NyA5LjEgOS4xIDAgMCAxIDIuOTk0LTIuMDYzIDkuMDYgOS4wNiAwIDAgMSA3LjEwMyAwIDkuMTUgOS4xNSAwIDAgMSAyLjk5NSAyLjA2MyA5LjMgOS4zIDAgMCAxIDEuOTY3IDMuMDc3IDkuMzQgOS4zNCAwIDAgMS0yLjEyNSAxMC4wMDMgOS4xIDkuMSAwIDAgMS02LjM4OCAyLjYzIDkuMSA5LjEgMCAwIDEtNi4zOS0yLjYzIDkuMyA5LjMgMCAwIDEtMi43NTUtNi4zOTUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==",
166
187
  url: "https://mantine.dev",
@@ -175,7 +196,10 @@ const features = [
175
196
  category: "Auth",
176
197
  label: "Better Auth",
177
198
  flag: "better-auth",
178
- llms: "https://www.better-auth.com/llms.txt",
199
+ skill: {
200
+ description: "Better Auth — the authentication framework this app uses. Use when reading the signed-in user or session, protecting routes, building sign-in/sign-up flows, configuring providers (email/password, OAuth/social), or adding plugins (2FA, organizations, magic link).",
201
+ llms: "https://www.better-auth.com/llms.txt"
202
+ },
179
203
  image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0wIDMuMzl2MTcuMjJoNS43ODNWMTUuMDZoNi40MzRWOC45MzlINS43ODNWMy4zOVpNMTIuMjE3IDguOTRoNS42Mzh2Ni4xMjJoLTUuNjM4djUuNTQ4SDI0VjMuMzkxSDEyLjIxN1oiLz48L3N2Zz4=",
180
204
  url: "https://better-auth.com",
181
205
  spectrum: "bleeding_edge",
@@ -236,7 +260,10 @@ const features = [
236
260
  category: "Data fetching",
237
261
  label: "tRPC",
238
262
  flag: "trpc",
239
- llms: "https://trpc.io/llms.txt",
263
+ skill: {
264
+ description: "tRPC — end-to-end typesafe APIs between this app's server and client. Use when adding a procedure (query/mutation) to the router, validating inputs, calling procedures from the client, or wiring server context.",
265
+ llms: "https://trpc.io/llms.txt"
266
+ },
240
267
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjg0ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDMwNSI+PHBhdGggZmlsbD0iIzM5OENDQiIgZD0iTTI4LjU3IDI0NC40ODRoMjEuOTgydjExLjE1M0gyOC41NzF2MjUuMzA4YTE2Ljg4IDE2Ljg4IDAgMCAwIC43MzggNS4zNjRhOC4xNTIgOC4xNTIgMCAwIDAgMi4wODggMy40YTcuODE1IDcuODE1IDAgMCAwIDMuMyAxLjg1MWMxLjIzNS4zMyAyLjUwNC41MSAzLjc4LjUzNmwuNTQ3LjAwMmMxLjE1IDAgMi4zMzggMCAzLjU2My0uMTYybC43MjctLjA5bDEuNDA5LS4xNmMuNDYxLS4wNTQuOTE1LS4xMTMgMS4zNjYtLjE4OGwuNjYtLjEwNWwxLjI0LS4xODRjLjQwMS0uMDYuNzktLjEyNCAxLjE3NS0uMTk5bC45MTgtLjE4NGwuNDI3LS4wOWwuNzktLjE3NmwuMzY2LS4wODdsMS40NzYgMTAuMzlhMTguNTA1IDE4LjUwNSAwIDAgMS0zLjc1MiAxLjZhMzUuOSAzNS45IDAgMCAxLTQuNTEzIDEuMTEzYy0xLjYuMy0zLjI2NC41MjYtNS4wMDIuNjg4YTU0LjI4IDU0LjI4IDAgMCAxLTUuMDg5LjIzOGEyOC4zOTYgMjguMzk2IDAgMCAxLTguNzUyLTEuMjVhMTYuODMgMTYuODMgMCAwIDEtNi43MjctNC4wMDJhMTcuMzQzIDE3LjM0MyAwIDAgMS00LjMwMi02Ljg1MmEyOS4xOTYgMjkuMTk2IDAgMCAxLTEuNTI1LTEwLjAwM3YtMjYuNzU4SDB2LTExLjE1M2gxMy40NDF2LTE0LjQxN2gxNS4xM3YxNC40MTdabTUzLjg4IDI5LjI3MXYyOS42MDlINjcuMTU2di03OS4yMzZoMjYuNjJhNDIuNTIgNDIuNTIgMCAwIDEgMTEuOTE2IDEuNTVhMjYuNjcgMjYuNjcgMCAwIDEgOS4xNCA0LjU1MmExOS44OCAxOS44OCAwIDAgMSA1Ljc5IDcuNTAyYTI0LjU3IDI0LjU3IDAgMCAxIDIuMDUgMTAuMzRhMjYuNzIgMjYuNzIgMCAwIDEtMS4wMTIgNy42NGEyMC4zMzEgMjAuMzMxIDAgMCAxLTcuNDAzIDEwLjgwNGEzMC4wOTYgMzAuMDk2IDAgMCAxLTUuOTAxIDMuNDg4bDE3LjAzIDMyLjY5N3YuNzEzaC0xNi40NDNMOTQuMDQgMjczLjc1NUg4Mi40NVptLjAxMi0xMi40MjhoMTEuMzE1YTE3Ljg2OCAxNy44NjggMCAwIDAgNi4yNTItMWExMC44NjYgMTAuODY2IDAgMCAwIDQuMzktMi45MTRhMTAuNTI4IDEwLjUyOCAwIDAgMCAyLjExMi0zLjU4OWMuNDQ4LTEuMzU4LjY5Mi0yLjc3NS43MjMtNC4yMDNsLjAwMi0uNTM2YTE1LjEwNCAxNS4xMDQgMCAwIDAtLjk1LTUuNTc2YTkuODY1IDkuODY1IDAgMCAwLTIuODUtNC4wMDFhMTIuMDY2IDEyLjA2NiAwIDAgMC00LjE0LTIuMTc2YTE5LjE0MyAxOS4xNDMgMCAwIDAtNC45Ny0uNzZsLTExLjg4NC0uMDAzdjI0Ljc1OFptNjcuODQ1IDQyLjAzN0gxMzUuMDR2LTc5LjIzNmgyNy4wOTVhMzQuNDEgMzQuNDEgMCAwIDEgMTEuNzAzIDEuODc2YTI2LjYzMyAyNi42MzMgMCAwIDEgOC45MjggNS4yMDFhMjMuMzA3IDIzLjMwNyAwIDAgMSA1LjYyNyA4LjA1M2EyNi4zNTggMjYuMzU4IDAgMCAxIDEuOTg4IDkuNzIzdi42NjdhMjQuMTcgMjQuMTcgMCAwIDEtMS45ODggOS44NTNhMjIuNTA3IDIyLjUwNyAwIDAgMS01LjYyNyA3Ljc3N2EyNi4zNyAyNi4zNyAwIDAgMS04Ljk2NSA1LjE3N2EzNC43MjMgMzQuNzIzIDAgMCAxLTExLjcwNCAxLjg1aC0xMS44MDNsLjAxMyAyOS4wNTlabTAtNDEuNDYyaDExLjgwM2ExNS4wMDQgMTUuMDA0IDAgMCAwIDUuNjY0LS45ODhhMTEuNTUzIDExLjU1MyAwIDAgMCA0LjAyNi0yLjY2M2ExMS4xNzggMTEuMTc4IDAgMCAwIDIuMzY0LTMuODg5Yy41My0xLjQ3Ni44LTMuMDMzLjgtNC42MDFhMTYuMzY3IDE2LjM2NyAwIDAgMC0uOC01LjE2NGExMS45NjYgMTEuOTY2IDAgMCAwLTIuMzY0LTQuMjAyYTExLjU5IDExLjU5IDAgMCAwLTQuMDI2LTIuODI1YTE0LjI2NyAxNC4yNjcgMCAwIDAtNS42NjQtMS4wMzhoLTExLjgwM3YyNS4zN1ptMTAzLjA0MiAyNy40MmEyNS4zMDcgMjUuMzA3IDAgMCAxLTUuOTAyIDguMTY1YTI2LjA0NSAyNi4wNDUgMCAwIDEtOC44MTUgNS4yMDJhMzMuNjQ3IDMzLjY0NyAwIDAgMS0xMC41NTggMS44MTRsLS43Ny0uMDAxYTMwLjc1OSAzMC43NTkgMCAwIDEtOS4wNTMtMS4yNWEyNS4zNDUgMjUuMzQ1IDAgMCAxLTcuNTAyLTMuNjc3YTI1LjcwNyAyNS43MDcgMCAwIDEtNS40MTQtNS4zODlhMzMuNjcyIDMzLjY3MiAwIDAgMS00LjAwMS02Ljk2NGE0MS41NzUgNDEuNTc1IDAgMCAxLTIuNDEzLTguMzc4YTUzLjQwOCA1My40MDggMCAwIDEtLjg1MS05LjY5di0xMC42NjZhNTMuNDMgNTMuNDMgMCAwIDEgLjc2My05LjExNWEzOS40MTEgMzkuNDExIDAgMCAxIDEuOTUtNy4xNjFsLjMzOC0uODY2YTMwLjQwOSAzMC40MDkgMCAwIDEgNC41NzctOC4wNTNhMjkuMjcxIDI5LjI3MSAwIDAgMSA2LjQxNC01Ljk3NmEyNi4xNTggMjYuMTU4IDAgMCAxIDcuMDUyLTMuMTg5YTI5LjEwOCAyOS4xMDggMCAwIDEgNy40OC0xLjExbC43Ni0uMDAzYTMzLjc2IDMzLjc2IDAgMCAxIDExLjYxNiAxLjg1YTIzLjc1NyAyMy43NTcgMCAwIDEgMTQuMzQyIDEzLjY1NWEzNy40MTEgMzcuNDExIDAgMCAxIDIuNjEzIDExLjE1M2gtMTUuMjNjLS4wOS0yLjEyLS40NDItNC4yMi0xLjA1LTYuMjUyYTEyLjM1NCAxMi4zNTQgMCAwIDAtMi40MjUtNC40NjNhMTAuNDE2IDEwLjQxNiAwIDAgMC00LjA1Mi0yLjYzOWExNi43MyAxNi43MyAwIDAgMC01LjgwMS0uOWExNC4yNDIgMTQuMjQyIDAgMCAwLTMuMzUxLjM4OGMtMSAuMjQzLTEuOTU5LjYyNi0yLjg1MSAxLjEzN2ExMS4zMjggMTEuMzI4IDAgMCAwLTMuNzUxIDMuNzUyYTIxLjk2OSAyMS45NjkgMCAwIDAtMi41MDEgNS42MzlhMzQuMDEgMzQuMDEgMCAwIDAtMS4wMjUgNS41MjZhNTguNzY3IDU4Ljc2NyAwIDAgMC0uMzI1IDYuNTAydjEwLjc2NmE2MS4yOCA2MS4yOCAwIDAgMCAuNTEyIDguNDY1YTI4LjkyIDI4LjkyIDAgMCAwIDEuNiA2LjUwMmExNS45OTIgMTUuOTkyIDAgMCAwIDEuODI2IDMuMzc2Yy42NjcuOTYgMS40ODcgMS44MDQgMi40MjYgMi41YTEwLjAwMyAxMC4wMDMgMCAwIDAgMy4yODggMS42YTE0LjU2IDE0LjU2IDAgMCAwIDQuMDUyLjUyNmExNy45MTggMTcuOTE4IDAgMCAwIDUuMzg5LS43NjNhMTAuMzAzIDEwLjMwMyAwIDAgMCA0LjA4OC0yLjRhMTEuMjUzIDExLjI1MyAwIDAgMCAyLjY2NC00LjE5YTIwLjk2OSAyMC45NjkgMCAwIDAgMS4yNS02LjE1SDI1NmEzMC4zOTYgMzAuMzk2IDAgMCAxLTIuNjUgMTAuNzI3Wk0xODYuMzggOTIuNDAybDM4LjQ4NiAyMi4yMnY0NC40NjJsLTM4LjQ4NiAyMi4yMmwtMTcuMDg1LTkuODgxbC00MS41NDUgMjMuOTg0bC00MS4yOTYtMjMuODQ3bC0xNi44NDYgOS43NDNsLTM4LjQ4Ni0yMi4yNTZWMTE0LjYybDM4LjQ4Ni0yMi4yMTlsMzguNDg2IDIyLjIydjQ0LjQyNWwtMTEuNjQzIDYuNzMzbDMxLjI5OSAxOC4wNzRsMzEuNTQ4LTE4LjIxMmwtMTEuNDA1LTYuNTk1VjExNC42MmwzOC40ODctMjIuMjE5Wk0xNTcuODk2IDEyNi4ydjI3LjEybDIzLjQ4MiAxMy41NTV2LTI3LjEyTDE1Ny44OTYgMTI2LjJabTU2Ljk2Ny0uMDM3bC0yMy40ODIgMTMuNTU0djI3LjE1OGwyMy40ODItMTMuNTkydi0yNy4xMlptLTE3My43MzggMHYyNy4xMmwyMy40ODEgMTMuNTU0di0yNy4xMmwtMjMuNDgxLTEzLjU1NFptNTYuOTY2IDBMNzQuNjEgMTM5LjcxNnYyNy4xMmwyMy40ODItMTMuNTU0di0yNy4xMlptODguMjg5LTIyLjE4MmwtMjMuNDgyIDEzLjU1NGwyMy40ODIgMTMuNTY3bDIzLjQ4MS0xMy41NjdsLTIzLjQ4MS0xMy41NTRabS0xMTYuNzcyLS4wMzdsLTIzLjQ4MiAxMy41OTFsMjMuNDgyIDEzLjUzbDIzLjQ4Mi0xMy41M2wtMjMuNDgyLTEzLjU5MVptMTkuMTQzLTY4LjkydjExLjU0bC0zNS42MSAyMC41N3YzNC43NzJsLTEwLjAwMyA1Ljc3N1Y2MS4zNTVMODguNzUgMzUuMDIzWk0xMjcuMjM3IDBsMzguNTEyIDIyLjIxOXYxMi4yMTlsNDYuNjEzIDI2LjkxN3Y0Ni4wMzlsLTEwLjAwMy01Ljc3N1Y2Ny4xMzJsLTM2LjYxLTIxLjE0MXYyMC42NjZsLTM4LjQ4NyAyMi4yMTlsLTM4LjQ4Ni0yMi4yMTlWMjIuMjE5TDEyNy4yMzcgMFpNOTguNzggMzMuNzZ2MjcuMTJsMjMuNDU3IDEzLjU1NFY0Ny4zMjZMOTguNzc5IDMzLjc2Wm01Ni45NDIgMGwtMjMuNDU3IDEzLjU2NnYyNy4wOTZMMTU1LjcyIDYwLjg4VjMzLjc2Wm0tMjguNDg0LTIyLjIwN0wxMDMuNzggMjUuMTA3bDIzLjQ1NyAxMy41NTRsMjMuNDgyLTEzLjU1NGwtMjMuNDgyLTEzLjU1NFoiLz48L3N2Zz4=",
241
268
  url: "https://trpc.io",
242
269
  spectrum: "beaten_path",
@@ -270,7 +297,10 @@ const features = [
270
297
  category: "Server",
271
298
  label: "Hono",
272
299
  flag: "hono",
273
- llms: "https://hono.dev/llms.txt",
300
+ skill: {
301
+ description: "Hono — the Web-Standards server framework powering this app's backend. Use when adding API routes or middleware, validating requests, handling cookies/headers, or changing server and runtime behavior.",
302
+ llms: "https://hono.dev/llms.txt"
303
+ },
274
304
  image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjUwMHB4IiBoZWlnaHQ9IjUwMHB4IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjAuOTkzIiBmaWxsPSIjZmY1YjExIiBkPSJNIDI1Ny41LDAuNSBDIDI1OC44MjIsMC4zMzAwMzQgMjU5Ljk4OSwwLjY2MzM2OCAyNjEsMS41QyAyOTguMTkzLDQ2Ljg5MzYgMzMzLjE5Myw5My44OTM2IDM2NiwxNDIuNUMgMzkwLjI4OSwxNzkuMDY5IDQxMC45NTUsMjE3LjczNSA0MjgsMjU4LjVDIDQ1NS4yMjEsMzMxLjEwNCA0NDEuMDU0LDM5NC4yNzEgMzg1LjUsNDQ4QyAzMzYuODkyLDQ4OS4wODIgMjgwLjg5Miw1MDUuMDgyIDIxNy41LDQ5NkMgMTQxLjcyNyw0ODAuNTUxIDkwLjIyNjUsNDM2LjcxOCA2MywzNjQuNUMgNTUuOTA4MSwzNDAuOTg5IDUzLjU3NDgsMzE2Ljk4OSA1NiwyOTIuNUMgNjAuMDM4NCwyNTAuMzQ3IDcwLjAzODQsMjA5LjY4IDg2LDE3MC41QyA5Mi42NTA5LDE1NC41MTQgMTAxLjMxOCwxMzkuODQ4IDExMiwxMjYuNUMgMTIwLjcxNSwxMzYuODggMTI5LjA0OCwxNDcuNTQ3IDEzNywxNTguNUMgMTQwLjY4MiwxNjIuMzQ5IDE0NC41MTUsMTY2LjAxNiAxNDguNSwxNjkuNUMgMTc4LjkxNywxMDkuMTM2IDIxNS4yNTEsNTIuODAyOCAyNTcuNSwwLjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2ZmOTc1OCIgZD0iTSAyNTAuNSw4MS41IEMgMjg3LjE5MywxMjQuMDYgMzIwLjM2LDE2OS4zOTMgMzUwLDIxNy41QyAzNTkuMjkzLDIzMy40MTggMzY2Ljk1OSwyNTAuMDg1IDM3MywyNjcuNUMgMzg1LjU4NCwzMTcuMDA4IDM3Mi4wODQsMzU3Ljg0MiAzMzIuNSwzOTBDIDI5NC4yMTYsNDE2LjkzOSAyNTIuMjE2LDQyNC45MzkgMjA2LjUsNDE0QyAxNTcuMjAxLDM5OC43MDIgMTI4LjcwMSwzNjUuNTM1IDEyMSwzMTQuNUMgMTE5LjEzMSwyOTguNDA5IDEyMC43OTgsMjgyLjc0MiAxMjYsMjY3LjVDIDEzMy40MTgsMjQ4LjY2MyAxNDIuNDE4LDIzMC42NjMgMTUzLDIxMy41QyAxNjMsMTk4LjgzMyAxNzMsMTg0LjE2NyAxODMsMTY5LjVDIDIwNS43MTYsMTQwLjI5IDIyOC4yMTYsMTEwLjk1NyAyNTAuNSw4MS41IFoiLz48L2c+Cjwvc3ZnPgo=",
275
305
  url: "https://hono.dev",
276
306
  tagline: "Fast, lightweight, built on web standards. Support for any JavaScript runtime.",
@@ -287,7 +317,10 @@ const features = [
287
317
  category: "Server",
288
318
  label: "Express",
289
319
  flag: "express",
290
- llms: "https://expressjs.com/llms.txt",
320
+ skill: {
321
+ description: "Express — the Node.js server framework powering this app's backend. Use when adding API routes or middleware, handling requests and responses, or changing server behavior.",
322
+ llms: "https://expressjs.com/llms.txt"
323
+ },
291
324
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJNMTI2LjY3IDk4LjQ0Yy00LjU2IDEuMTYtNy4zOC4wNS05LjkxLTMuNzUtNS42OC04LjUxLTExLjk1LTE2LjYzLTE4LTI0LjktLjc4LTEuMDctMS41OS0yLjEyLTIuNi0zLjQ1Qzg5IDc2IDgxLjg1IDg1LjIgNzUuMTQgOTQuNzdjLTIuNCAzLjQyLTQuOTIgNC45MS05LjQgMy43bDI2LjkyLTM2LjEzTDY3LjYgMjkuNzFjNC4zMS0uODQgNy4yOS0uNDEgOS45MyAzLjQ1IDUuODMgOC41MiAxMi4yNiAxNi42MyAxOC42NyAyNS4yMSA2LjQ1LTguNTUgMTIuOC0xNi42NyAxOC44LTI1LjExIDIuNDEtMy40MiA1LTQuNzIgOS4zMy0zLjQ2LTMuMjggNC4zNS02LjQ5IDguNjMtOS43MiAxMi44OC00LjM2IDUuNzMtOC42NCAxMS41My0xMy4xNiAxNy4xNC0xLjYxIDItMS4zNSAzLjMuMDkgNS4xOUMxMDkuOSA3NiAxMTguMTYgODcuMSAxMjYuNjcgOTguNDR6TTEuMzMgNjEuNzRjLjcyLTMuNjEgMS4yLTcuMjkgMi4yLTEwLjgzIDYtMjEuNDMgMzAuNi0zMC4zNCA0Ny41LTE3LjA2QzYwLjkzIDQxLjY0IDYzLjM5IDUyLjYyIDYyLjkgNjVINy4xYy0uODQgMjIuMjEgMTUuMTUgMzUuNjIgMzUuNTMgMjguNzggNy4xNS0yLjQgMTEuMzYtOCAxMy40Ny0xNSAxLjA3LTMuNTEgMi44NC00LjA2IDYuMTQtMy4wNi0xLjY5IDguNzYtNS41MiAxNi4wOC0xMy41MiAyMC42Ni0xMiA2Ljg2LTI5LjEzIDQuNjQtMzguMTQtNC44OUM1LjI2IDg1Ljg5IDMgNzguOTIgMiA3MS4zOWMtLjE1LTEuMi0uNDYtMi4zOC0uNy0zLjU3cS4wMy0zLjA0LjAzLTYuMDh6bTUuODctMS40OWg1MC40M2MtLjMzLTE2LjA2LTEwLjMzLTI3LjQ3LTI0LTI3LjU3LTE1LS4xMi0yNS43OCAxMS4wMi0yNi40MyAyNy41N3oiIC8+PC9zdmc+",
292
325
  url: "https://expressjs.com",
293
326
  spectrum: "beaten_path",
@@ -305,7 +338,10 @@ const features = [
305
338
  category: "Server",
306
339
  label: "Fastify",
307
340
  flag: "fastify",
308
- llms: "https://fastify.dev/llms.txt",
341
+ skill: {
342
+ description: "Fastify — the high-performance Node.js server framework powering this app's backend. Use when adding routes, plugins or hooks, validating with schemas, or changing server and lifecycle behavior.",
343
+ llms: "https://fastify.dev/llms.txt"
344
+ },
309
345
  image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nODQ5JyBoZWlnaHQ9JzU0NScgdmlld0JveD0nMCAwIDg0OSA1NDUnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PHBhdGggZD0nTTgyMi4xOCA3Ny4zMkw4NDguOSA4LjExTDg0Ny43NSAzLjgzTDU4My40MSA3My40OEM2MTEuNTUgMzIuNyA2MDEuOSAwIDYwMS45IDBDNjAxLjkgMCA1MTcuNDkgNTMuOTEgNDUzLjY0IDUyLjQ5QzM4OS43OSA1MS4wNyAzNjkuMjMgMzQuMDUgMjcxLjMzIDY1LjI2QzE3My40MyA5Ni40NyAxNDUuNzcgMTkyLjI2IDExNy40IDIxMi44MUM4OS4wMyAyMzMuMzYgMCAzMDAuNDIgMCAzMDAuNDJMMC4xOTAwMDIgMzAxLjYyTDgwLjQ1IDI3Ni4wNkM4MC40NSAyNzYuMDYgNTguNDUgMjk2LjgxIDExLjY4IDM1OS44M0MxMS42OCAzNTkuODMgMTAuODYgMzU5LjA4IDkuNSAzNTcuODNMOS41NyAzNTguMjZDOS41NyAzNTguMjYgNDcuMTcgNDE1LjcyIDg0LjA2IDQwNS4wOEM4OC4zNzQ0IDQwMy43MzkgOTIuNTU1NSA0MDIuMDAxIDk2LjU1IDM5OS44OUMxMTEuNCA0MDguMTYgMTMwLjc5IDQxNi4yOSAxNTIuMiA0MTguNTNDMTQyLjU2OCA0MDcuMTIgMTMzLjY4OSAzOTUuMDk0IDEyNS42MiAzODIuNTNMMTM1LjYyIDM3Ni4wMkwxMzQuMDYgMzc3LjE0TDE2NC42MyAzODguMzZMMTYxLjIzIDM1OS42TDE2MS41MyAzNTkuNDFMMTkxLjUzIDM3MC40MUwxODcuNzkgMzQ0LjI4QzE5MS41OSAzNDIuMjggMTk1LjQgMzQwLjQxIDE5OS4xOSAzMzguNjVMMjMwLjU1IDIyMC4yNkwzNjAuMDEgMTMxLjk0TDM0OS43MyAxNTcuODNDMzIzLjQ3IDIyMi4zOSAyNzQuMTcgMjM3LjYgMjc0LjE3IDIzNy42TDI1My42IDI0NS40QzIzOC4yOSAyNjMuNDkgMjMxLjg2IDI2Ny45NCAyMjYuNiAzMjguNjVDMjM4LjkzIDMyNS41NCAyNTAuNzIgMzI0LjgyIDI2MS40IDMyNy42NUMzMTYuNzMgMzQyLjU1IDMzNS44OSA0MDkuMjMgMzIwLjk5IDQyNy42NUMzMTcuMjYgNDMyLjI3IDMwOC4zOCA0NDAuMTcgMjk3LjE3IDQ0OS40MkgyNzQuNzJMMjc0LjQzIDQ2Ny42MUwyNzIuMTIgNDY5LjQxSDI0OS4yOEwyNDguOTkgNDg3LjE2QzI0Ni45OSA0ODguNyAyNDQuOTkgNDkwLjIxIDI0Mi45OSA0OTEuNjhDMjIxLjUyIDQ5Mi4xMyAxOTQuMzQgNDczLjQxIDE5NC4zNCA0NzMuNDFDMTk0LjM0IDQ5MC40MSAyMDguNTMgNTE2LjY4IDIwOC41MyA1MTYuNjhMMjExLjA0IDUxNS40NkwyMDguODkgNTE3LjAzQzIwOC44OSA1MTcuMDMgMjY2LjM1IDU1NS4zNCAzMDIuNTIgNTQxLjE1QzMzNC43MiA1MjguNiA0MTcuOTkgNDYyLjk3IDQ4OS44OCA0MzEuOUw3MDcuNDIgMzc0LjZMNzM2LjExIDMwMC4yOUw1NzAuMzMgMzQzLjk1VjI3Ny4xOUw3NjQuOCAyMjUuOTVMNzkzLjQ5IDE1MS42TDU3MC4zMyAyMTAuNFYxNDMuNjhMODIyLjE4IDc3LjMyWk00MjcuMzYgMjE4Ljc5TDQ3OC45OCAyMDUuMTlMNDc5LjY3IDIwNy43OEw0NjMuNTUgMjQ5LjVMNDEwLjA3IDI2My42TDQyNy4zNiAyMTguNzlaTTQ0NS4xOCAzMDguMDlMMzkxLjY4IDMyMi4xOUw0MDguOTcgMjc3LjM4TDQ2MC41NSAyNjMuNzhMNDYxLjI0IDI2Ni4zN0w0NDUuMTggMzA4LjA5Wk01MTQuODkgMjkzLjA5TDQ2MS4zOCAzMDcuMTlMNDc4LjY4IDI2Mi4zOUw1MzAuMyAyNDguNzhMNTMwLjk5IDI1MS4zN0w1MTQuODkgMjkzLjA5WicgZmlsbD0nIzIxNUZGNicvPjwvc3ZnPgo=",
310
346
  url: "https://fastify.dev",
311
347
  tagline: "Fast and low overhead web framework, for Node.js",
@@ -322,7 +358,10 @@ const features = [
322
358
  category: "Server",
323
359
  label: "Elysia",
324
360
  flag: "elysia",
325
- llms: "https://elysiajs.com/llms.txt",
361
+ skill: {
362
+ description: "Elysia — the Bun-first, end-to-end typesafe server framework powering this app's backend. Use when adding routes or plugins, validating and typing requests, or changing server behavior.",
363
+ llms: "https://elysiajs.com/llms.txt"
364
+ },
326
365
  image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MjQuNDA0IDQ3MC44MTZDNDc4LjA4OSA0MjMuODg5IDUxMiAzNTQuOTA1IDUxMiAyNzhDNTEyIDEzNi42MTUgMzk3LjM4NSAyMiAyNTYgMjJDMTE0LjYxNSAyMiAwIDEzNi42MTUgMCAyNzhDMCAzNTIuNjU4IDMxLjk1ODMgNDE5Ljg1MSA4Mi45NDA5IDQ2Ni42NDZMODMuMTc2NyA0NjVMNDE5LjE0NCAzNTVMNDI0LjQwNCA0NzAuODE2WiIgZmlsbD0iIzMzMzMzMyIvPjxwYXRoIGQ9Ik0xODkuOTE1IDUyLjc0MTJMMTQ0LjUgNDZMMTUxLjMwMyA0My45MDY5QzE1NS40MDIgNDIuNjQ1NSAxNTkuMjQ4IDQwLjY3MTkgMTYyLjY2MiAzOC4wNzY1TDE2My43MyAzNy4yNjU0QzE2Ny44NDUgMzQuMTM3NSAxNzEuMTIgMzAuMDM2NCAxNzMuMjU5IDI1LjMzMDRDMTc0LjQxNCAyMi43ODgzIDE3NS4yMjQgMjAuMTAyNyAxNzUuNjY1IDE3LjM0NTRMMTc2LjE3MyAxNC4xNjk4QzE3Ni43MiAxMC43NDczIDE3Ni42OTIgNy4yNTc0MSAxNzYuMDkgMy44NDQxNkMxNzUuODM0IDIuMzk0MjkgMTc3LjI3OSAxLjIzMjM5IDE3OC42NCAxLjc5Mjk2TDE4MC40OTggMi41NTgxNUMxODIuODI5IDMuNTE3OTggMTg1LjA4NCA0LjY1NDM0IDE4Ny4yNDIgNS45NTczMkwxOTQuOTY1IDEwLjYyMDVDMjA1LjIyOSAxNi44MTc0IDIxNC4yMjYgMjQuOTAyMyAyMjEuNDggMzQuNDQ3N0wyMjYuNjE2IDQxLjIwNTFDMjI4LjUyOSA0My43MjI4IDIzMC43ODMgNDUuOTYyNSAyMzMuMzEzIDQ3Ljg1OTlDMjM2LjA4OCA0OS45NDExIDIzOS4xNjQgNTEuNTg3NCAyNDIuNDM1IDUyLjc0MThMMjQ2IDU0TDIyNy4yNzQgNTQuNzQ5QzIxNC43ODUgNTUuMjQ4NiAyMDIuMjc4IDU0LjU3NjQgMTg5LjkxNSA1Mi43NDEyWiIgZmlsbD0iI0NDQ0NDQyIvPjxwYXRoIGQ9Ik0xNzguMzIxIDkzLjAwNkwxOTEuNzkgNjguMzg0NEMxOTEuOTIyIDY4LjE0MyAxOTEuOTMgNjcuODUyOCAxOTEuODEyIDY3LjYwNDJMMTg3LjIyIDU3LjkzNjFDMTg0LjMzNyA1MS44NjczIDE3OC4yMTkgNDggMTcxLjUgNDhMMTcwLjIzIDQ3Ljk1NjJDMTYxLjQzNyA0Ny42NTMgMTUyLjcwNCA0Ni4zODI5IDE0NC4xODggNDQuMTY5TDE0Mi41MDQgNDMuNzMxQzEzNS41MjEgNDEuOTE1MyAxMjguNzQ2IDM5LjM3MzIgMTIyLjI5MyAzNi4xNDYzTDExOS40NDYgMzQuNzIzQzExNS4xNTkgMzIuNTc5NyAxMTEuMDk5IDMwLjAxMiAxMDcuMzI1IDI3LjA1ODRMMTAzLjU1IDI0LjEwNDNDMTAyLjQyOCAyMy4yMjY1IDEwMC44MDMgMjMuNDUwNiA5OS45NjA2IDI0LjU5OTJDOTcuMzY1MSAyOC4xMzg0IDk1LjczNzkgMzIuMjkzNSA5NS4yMzk1IDM2LjY1NDFMOTQuNTUzNSA0Mi42NTcxQzk0LjE4NTQgNDUuODc3NCA5NC4xNDQ2IDQ5LjEyNjcgOTQuNDMxNiA1Mi4zNTUyTDk2LjEwMzEgNzEuMTU5NUM5Ny4zNDY3IDg1LjE1MDEgMTAyLjE3NSA5OC41ODQgMTEwLjEyMyAxMTAuMTY1TDExMS44MjUgMTEyLjY0NUMxMTQuMjY3IDExNi4yMDMgMTE3LjExMyAxMTkuNDY2IDEyMC4zMDYgMTIyLjM2OUMxMjAuNzU2IDEyMi43NzggMTIxLjMyOSAxMjMuMDMgMTIxLjkzNiAxMjMuMDg0QzE0NS4wMjkgMTI1LjE1NiAxNjcuMTk0IDExMy4zNDggMTc4LjMyMSA5My4wMDZaIiBmaWxsPSIjQ0NDQ0NDIi8+PHBhdGggZD0iTTEyNy4zNzggMTIzLjUzOEwxNDMuMzc2IDExNi42MTNDMTUwLjQzOCAxMTMuNTU3IDE1Mi41ODggMTA0LjU3NyAxNDcuNjc2IDk4LjY1MzNDMTQzLjY4MyA5My44Mzc4IDEzNi41OCA5My4wODAzIDEzMS42NjEgOTYuOTQ1M0wxMjcuODY3IDk5LjkyNTZDMTI2Ljk1OCAxMDAuNjQgMTI2LjEyNyAxMDEuNDQ4IDEyNS4zODcgMTAyLjMzNkwxMTYuMjYzIDExMy4yODRDMTE0Ljk4MiAxMTQuODIyIDExNS4wODQgMTE3LjA4NCAxMTYuNSAxMTguNUwxMTkuMzE4IDEyMS43MjFDMTE5Ljc3IDEyMi4yMzcgMTIwLjI5NiAxMjIuNjg1IDEyMC44NzggMTIzLjA0OUMxMjIuODMzIDEyNC4yNzEgMTI1LjI2MyAxMjQuNDUzIDEyNy4zNzggMTIzLjUzOFoiIGZpbGw9IiNFREVERUQiLz48cGF0aCBkPSJNMTQ3Ljk4OCA0NC44NDM3TDE0Ny41IDQ1TDE0OC45NjIgNDUuNDY1MUMxNTUuMjk0IDQ3LjQ3OTggMTYxLjg2MSA0OC42NiAxNjguNDk4IDQ4Ljk3NjFDMTY4LjgzIDQ4Ljk5MTkgMTY5LjE2MyA0OC45NTM0IDE2OS40ODMgNDguODYxOUwxNzIuNSA0OEwxNzQgNDcuNUwxNjQuNDE5IDQ1LjQxNzJDMTYzLjE1OCA0NS4xNDMxIDE2MS45ODIgNDQuNTY4NyAxNjAuOTkxIDQzLjc0MjZDMTYwLjIxOCA0My4wOTgxIDE2MC4yMjMgNDEuOTA4NCAxNjEuMDAyIDQxLjI3MDhMMTYyLjQyMyA0MC4xMDg0QzE2NC4xMiAzOC43MTk3IDE2NS40OTMgMzYuOTc2IDE2Ni40NDQgMzVDMTYwLjkzNCAzOS4zNjQyIDE1NC42ODIgNDIuNjk4OCAxNDcuOTg4IDQ0Ljg0MzdaIiBmaWxsPSIjQjJCMkIyIi8+PHBhdGggZD0iTTIwMi43NzYgMjE5LjQyOEw3Mi4yOTA1IDQ1Mi42OTNDNzEuNjQzIDQ1My44NTEgNzAuMDY4NyA0NTQuMDY5IDY5LjEzMDggNDUzLjEzMUw2Ni41IDQ1MC41TDU1LjUgNDM4TDQ4LjQ4ODggNDI4LjkyN0M0MS44NDA3IDQyMC4zMjMgMzUuOTA1MiA0MTEuMTkyIDMwLjc0MTQgNDAxLjYyNEwyOS43NDM0IDM5OS43NzVDMjQuMjU4MSAzODkuNjExIDE5LjY2MzUgMzc4Ljk5MSAxNi4wMTEyIDM2OC4wMzRMMTIuNSAzNTcuNUM3LjIyNTE5IDMzOC4zNzkgNi4wMTQ0NyAzMTguMzY1IDguOTQ1ODMgMjk4Ljc0N0w5LjA2OTYxIDI5Ny45MTlDMTAuMzU0IDI4OS4zMjMgMTIuNDAzNCAyODAuODYgMTUuMTkzNSAyNzIuNjI5TDIxIDI1NS41TDI1LjMzMzQgMjQ2LjM4NUMzMi4wNTM3IDIzMi4yNDkgNDEuMzE5MyAyMTkuNDcyIDUyLjY2NjkgMjA4LjY5MUw1OC4xNzE5IDIwMy40NjJDNjkuNTUyOSAxOTIuNjUgODMuMzkzNyAxODQuNzY5IDk4LjUgMTgwLjVDOTQuOTY3IDE4MS40OTggOTEuMzYwOCAxODIuMjE2IDg3LjcxNDkgMTgyLjY0N0w4MC41IDE4My41TDc1IDE4NEw2OSAxODVMNjMgMTg1LjU2MUw1OSAxODZMNTYuMTE4NiAxODYuMThDNTUuMTkyNyAxODYuMjM4IDU0Ljc1NzYgMTg1LjA1NyA1NS40OTk4IDE4NC41TDU1LjUwMDIgMTg0LjVMNTkuNTI3MyAxODIuNTdDNzIuNTA2NiAxNzYuMzUxIDgzLjE3NjYgMTY2LjE3MiA5MCAxNTMuNUw5NC40NDc1IDE0Ni41NjJDOTkuNzUxMSAxMzguMjg4IDEwNi44MDcgMTMxLjI4IDExNS4xMTYgMTI2LjAzMkwxMTYuODMzIDEyNC45NDhDMTE5LjkzNSAxMjIuOTg5IDEyMy4yNDYgMTIxLjM4NCAxMjYuNzA1IDEyMC4xNjNMMTQyLjQ0NiAxMTQuNjA3QzE0NS4zNDggMTEzLjU4MyAxNDcuNjkgMTExLjM5IDE0OC45MDMgMTA4LjU2MUwxNDkuMTQzIDEwOEMxNDkuNzA1IDEwNi42ODcgMTQ5LjkzMiAxMDUuMjU1IDE0OS44MDMgMTAzLjgzM0MxNDkuNjA4IDEwMS42ODkgMTQ4LjYxNiA5OS42OTY2IDE0Ny4wMjMgOTguMjQ4NUwxNDQuMjU2IDk1LjczMjhDMTQ0LjA4NiA5NS41Nzc5IDE0My45MyA5NS40MDczIDE0My43OTIgOTUuMjIzMkwxMjYgNzEuNUwxMTEuODAzIDUxLjkzMTVDMTA4Ljk5NCA0OC4wNTkyIDEwNy4zNTkgNDMuNDU5OSAxMDcuMDk0IDM4LjY4MzJDMTA3LjA1MSAzNy45MjYzIDEwNy44MzYgMzcuNDAxNSAxMDguNTIgMzcuNzI5NUwxMjMuODgxIDQ1LjEwMjhDMTM3LjE3NCA1MS40ODM0IDE1Mi4zMyA1Mi44MjUgMTY2LjUzNyA0OC44Nzg2QzE2OS44NCA0Ny45NjEyIDE3My4yMTQgNDcuMzI0MiAxNzYuNjI0IDQ2Ljk3NDVMMTgzLjY3NSA0Ni4yNTEzQzIwMS40MDYgNDQuNDMyOCAyMTkuMzIgNDUuOTA1NCAyMzYuNTE2IDUwLjU5NTNMMjM4IDUxTDI1NC43OTggNTcuMDQ3MkMyNzUuODY5IDY0LjYzMjkgMjkyLjU2NyA4MS4wNTcxIDMwMC41IDEwMkwzMDQuMDIyIDExNS43MzRDMzA1LjAwNCAxMTkuNTY3IDMwNi4zOTIgMTIzLjI4NSAzMDguMTYyIDEyNi44MjRDMzEyLjMyMSAxMzUuMTQyIDMxOC40OTUgMTQyLjI4OSAzMjYuMTIxIDE0Ny42MTNMMzM1LjA4NCAxNTMuODdDMzM5LjAyMyAxNTYuNjIgMzQzLjE1NyAxNTkuMDc4IDM0Ny40NTMgMTYxLjIyN0wzNjcuMjg5IDE3MS4xNDVDMzY4LjE3OCAxNzEuNTg5IDM2OC40NDQgMTcyLjczMiAzNjcuODQzIDE3My41MjNDMzYyLjM3MiAxODAuNzIxIDM1NS4xNDggMTg2LjM5NSAzNDYuODU5IDE5MC4wMDVMMzM1LjM3MSAxOTUuMDA4QzMzMC43OTcgMTk3IDMyNi4wODEgMTk4LjY1IDMyMS4yNjIgMTk5Ljk0NUwzMTIuODIyIDIwMi4yMTJDMzAwLjk5MiAyMDUuMzkgMjg4Ljc5NiAyMDcgMjc2LjU0NiAyMDdIMjU2LjMzM0MyNTIuMTQ4IDIwNyAyNDguMDAxIDIwNi4yMTMgMjQ0LjEwOCAyMDQuNjc5QzIyOC41ODEgMTk4LjU2MiAyMTAuOTIzIDIwNC44NjMgMjAyLjc3NiAyMTkuNDI4WiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNMjcxLjE4NSAxMzUuMzE2TDI3OS45ODcgMTM1LjQxOEMyODEuMTgyIDEzNS40MzIgMjgxLjQ1MiAxMzMuNzQ4IDI4MC4zMTIgMTMzLjM4OEMyNzguNDQxIDEzMi43OTcgMjc2LjYyMyAxMzIuMDQ4IDI3NC44NzkgMTMxLjE1TDI2OC4wMDggMTI3LjYxQzI2My4zNSAxMjUuMjExIDI1OC45NjkgMTIyLjMwOCAyNTQuOTQ0IDExOC45NTNMMjUzLjU5MiAxMTcuODI3QzI1MC41NCAxMTUuMjgzIDI0Ny43NyAxMTIuNDE4IDI0NS4zMyAxMDkuMjgyTDI0My43NjggMTA3LjI3M0MyNDMuMjM0IDEwNi41ODYgMjQyLjEzNCAxMDcuMDA1IDI0Mi4xOTIgMTA3Ljg3M0MyNDMuMjEyIDEyMy4xODYgMjU1LjgzOSAxMzUuMTM4IDI3MS4xODUgMTM1LjMxNloiIGZpbGw9IiM2NjY2NjYiLz48cGF0aCBkPSJNODIuMjIzMSA0NTYuMzk1TDIzMS4zMTMgMzIzLjRDMjQ1LjM2NyAzMTAuODYzIDI1Ny41OCAyOTYuNDAzIDI2Ny41OSAyODAuNDVMMjY4LjUgMjc5QzI3My40MDQgMjY5LjE5MiAyNzUuNDk3IDI1OC4yMTcgMjc0LjU0NyAyNDcuMjkzTDI3My4yNCAyMzIuMjU4QzI3Mi40MzYgMjIzLjAwOSAyNjguNjE4IDIxNC4yOCAyNjIuMzczIDIwNy40MUMyNjIuMTMxIDIwNy4xNDQgMjYxLjgxIDIwNi45NjEgMjYxLjQ1NyAyMDYuODg5TDIzNy41IDIwMkMyMjAuMTE3IDE5Ni43NTIgMjAxLjY4OCAxOTUuOTk1IDE4My45MzMgMTk5LjhMMTgzIDIwMEwxNjkuMDYgMjAzLjI1OUMxMjguNDA1IDIxMi43NjMgOTIuNTc0MiAyMzYuNjg1IDY4LjIxMTYgMjcwLjU5Mkw2Ny41OTcgMjcxLjQ0N0M2MC44ODQ2IDI4MC43ODkgNTUuMTgyMiAyOTAuODE3IDUwLjU4NTYgMzAxLjM2Mkw0OS43NjUgMzAzLjI0NUMzOC4xNTQ0IDMyOS44ODEgMzQuMjQwOSAzNTkuMjM4IDM4LjQ2ODQgMzg3Ljk4NUwzOS44NTExIDM5Ny4zODdDNDEuMjc1MSA0MDcuMDcgNDQuMTkzMSA0MTYuNDc0IDQ4LjUwMTEgNDI1LjI2MkM1Mi40Nzk4IDQzMy4zNzkgNTcuNjAxNCA0NDAuODgzIDYzLjcwOTUgNDQ3LjU0N0w3MS4zMTc3IDQ1NS44NDdDNzQuMTkxMSA0NTguOTgxIDc5LjA0OTggNDU5LjIyNSA4Mi4yMjMxIDQ1Ni4zOTVaIiBmaWxsPSIjQ0NDQ0NDIi8+PHBhdGggZD0iTTIxMi43NDkgMjc4Ljg1OEwyMTIuMjY3IDI3OS4xMzNDMTk5LjY4NiAyODYuMzIyIDE5Mi45MTggMjk5Ljg5MiAxOTMuNTggMzE0LjM2N0MxOTMuNzY4IDMxOC40ODQgMTk3Ljg5MyAzMjIuMjU1IDIwMS44NTggMzIxLjEzMkwyMDkuMTYzIDMxOS4wNjJDMjE4LjYwNyAzMTYuMzg2IDIyNy4zNTMgMzExLjY4MSAyMzQuNzg5IDMwNS4yNzRMMjU2IDI4N0wyNjIuMjkyIDI4Mi4zNDNDMjk4Ljg3MSAyNTUuMjY5IDM0NC44MzMgMjQ0LjExMyAzODkuNzU0IDI1MS40MDVDMzkxLjE0IDI1MS42MyAzOTEuMTg0IDI1My42MDcgMzg5LjgxIDI1My44OTRMMzg0LjUgMjU1TDM4Mi4wOTMgMjU1Ljg0MkMzNzcuMTUgMjU3LjU3MiAzNzIuODU2IDI2MC43NzYgMzY5Ljc5IDI2NS4wMjJDMzY5LjIxNCAyNjUuODE5IDM2OS45ODIgMjY2Ljg5IDM3MC45MjIgMjY2LjYwMUwzNzIuNjYzIDI2Ni4wNjVDMzgyLjQ2NyAyNjMuMDQ5IDM5Mi43NTEgMjYxLjkwNCA0MDIuOTc4IDI2Mi42OTFMNDA3IDI2M0M0MjguODQzIDI2My45NSA0NDkuMTE0IDI3NC42MjYgNDYyLjI1NCAyOTIuMUw0NjcuMTc5IDI5OC42NUM0ODEuNzc2IDMxOC4wNjMgNDg3Ljk1MyAzNDIuNTMgNDg0LjMxOSAzNjYuNTQ1TDQ4Mi40MjEgMzc5LjA4N0M0NzkuODM3IDM5Ni4xNjMgNDczLjYxOCA0MTIuNDg2IDQ2NC4xODQgNDI2Ljk1Mkw0NjMuNSA0MjhMNDUzIDQ0Mkw0NDEuNSA0NTVMNDMwLjk2NSA0NjUuMTE0QzQyMS4zNDYgNDc0LjM0OCA0MTAuODI3IDQ4Mi41OTcgMzk5LjU2NyA0ODkuNzM4TDM5NiA0OTJMMzg5LjE3NSA0OTUuMjVDMzg3LjQxNyA0OTYuMDg3IDM4NS45NSA0OTMuNjc4IDM4Ny41IDQ5Mi41TDM5NyA0ODMuNUwzOTguOTUzIDQ4MS40NDlDNDA0LjIzMiA0NzUuOTA2IDQwOC4wMjcgNDY5LjEyIDQwOS45ODYgNDYxLjcyMUw0MTAuODg5IDQ1OC4zMDlDNDExLjI5NSA0NTYuNzc2IDQxMS41IDQ1NS4xNzQgNDExLjUgNDUzLjU4OEM0MTEuNSA0NDQuOTA5IDQwNS4zNTQgNDM3LjI5OCAzOTYuODM2IDQzNS42MzFDMzkxLjU1NCA0MzQuNTk3IDM4Ni4wODUgNDM1Ljk2MiAzODEuOTA3IDQzOS4zNTZMMzcyLjUgNDQ3TDM1NS44OTQgNDYwLjU4N0MzNDQuOTk1IDQ2OS41MDQgMzMzLjE4NSA0NzcuMjQ1IDMyMC42NiA0ODMuNjgyTDMwMy41IDQ5Mi41TDI3NC41IDUwMy41TDI2OC40MTIgNTA1LjE2QzI1Ny44MjIgNTA4LjA0OSAyNDcuMDEyIDUxMC4wNiAyMzYuMDkyIDUxMS4xNzRMMjI4IDUxMkgyMDJMMTY3LjUgNTA4LjI1TDE0OC44MzIgNTA0LjIxQzEzOC45ODUgNTAyLjA3OSAxMjkuNDU2IDQ5OC42ODIgMTIwLjQ4MiA0OTQuMTAzQzExMy4xODEgNDkwLjM3OCAxMDYuMjkzIDQ4NS44OTQgOTkuOTMxIDQ4MC43MjVMODUuNSA0NjlDNjguMDA1IDQ1NS42NCA1Ny4wNDQ5IDQzNS40NDggNTUuMzc0OSA0MTMuNDk4TDU0LjUgNDAyTDU1LjUyOTUgMzg1LjgyMkM1Ny4xMzQgMzYwLjYwOCA2Ni43OTExIDMzNi41NzYgODMuMDc5MiAzMTcuMjYzQzg5LjY2NTIgMzA5LjQ1NCA5Ny4yMzc2IDMwMi41MzQgMTA1LjYwNiAyOTYuNjc1TDEwOC42NzcgMjk0LjUyNkMxMjEuNDU4IDI4NS41NzkgMTM1LjcyIDI3OC45NjEgMTUwLjgwNSAyNzQuOTc2TDE2MC45NDcgMjcyLjI5N0MxNzQuMTM1IDI2OC44MTMgMTg3Ljk1MiAyNjguNDQ1IDIwMS4zMDcgMjcxLjIyTDIxMS44ODcgMjczLjQxOEMyMTQuNTQyIDI3My45NyAyMTUuMTAzIDI3Ny41MTMgMjEyLjc0OSAyNzguODU4WiIgZmlsbD0iIzVFNUU1RSIvPjwvc3ZnPg==",
327
366
  url: "https://elysiajs.com",
328
367
  tagline: "Ergonomic web framework for building backend servers, fast and type-safe.",
@@ -368,7 +407,10 @@ const features = [
368
407
  category: "ORM / Query builder",
369
408
  label: "Drizzle",
370
409
  flag: "drizzle",
371
- llms: "https://orm.drizzle.team/llms.txt",
410
+ skill: {
411
+ description: "Drizzle ORM — the typed SQL ORM for this app's database. Use when defining or changing the schema/tables, generating and running migrations, or writing queries (select/insert/update, joins, relations).",
412
+ llms: "https://orm.drizzle.team/llms.txt"
413
+ },
372
414
  image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K",
373
415
  url: "https://orm.drizzle.team/",
374
416
  tagline: "Headless TypeScript ORM that feels like SPA with SSR",
@@ -382,7 +424,10 @@ const features = [
382
424
  category: "ORM / Query builder",
383
425
  label: "Kysely",
384
426
  flag: "kysely",
385
- llms: "https://kysely.dev/llms.txt",
427
+ skill: {
428
+ description: "Kysely — the typesafe SQL query builder for this app's database. Use when adding a table or migration, writing typed queries (joins, subqueries, transactions), or updating the generated database types.",
429
+ llms: "https://kysely.dev/llms.txt"
430
+ },
386
431
  image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTMyJyBoZWlnaHQ9JzEzMicgdmlld0JveD0nMCAwIDEzMiAxMzInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGcgY2xpcC1wYXRoPSd1cmwoI2NsaXAwXzhfMyknPjxyZWN0IHg9JzInIHk9JzInIHdpZHRoPScxMjgnIGhlaWdodD0nMTI4JyByeD0nMTYnIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nTTQxLjI5ODMgMTA5VjIzLjkwOTFINDYuNDkxOFY3My4zMUg0Ny4wNzM1TDkxLjk0NTcgMjMuOTA5MUg5OC44NDI3TDYxLjkwNjIgNjQuMTY5NEw5OC41MTAzIDEwOUg5Mi4wMjg4TDU4LjU4MjQgNjcuOTA4N0w0Ni40OTE4IDgxLjI4NzNWMTA5SDQxLjI5ODNaJyBmaWxsPSdibGFjaycvPjwvZz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBzdHJva2U9JyMxMjEyMTInIHN0cm9rZS13aWR0aD0nNCcvPjxkZWZzPjxjbGlwUGF0aCBpZD0nY2xpcDBfOF8zJz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBmaWxsPSd3aGl0ZScvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPgo=",
387
432
  url: "https://kysely.dev/",
388
433
  tagline: "The type-safe SQL query builder for TypeScript",
@@ -396,7 +441,10 @@ const features = [
396
441
  category: "ORM / Query builder",
397
442
  label: "Prisma",
398
443
  flag: "prisma",
399
- llms: "https://www.prisma.io/docs/llms.txt",
444
+ skill: {
445
+ description: "Prisma — the ORM for this app's database. Use when defining models in `schema.prisma`, creating or running migrations, or querying through the Prisma Client (CRUD, relations, transactions).",
446
+ llms: "https://www.prisma.io/docs/llms.txt"
447
+ },
400
448
  image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMS44MDY4IDE4LjI4NDhMMTMuNTUyOC43NTY1Yy0uMjA3LS40MzgyLS42MzktLjcyNzMtMS4xMjg2LS43NTQxLS41MDIzLS4wMjkzLS45NTIzLjIxMy0xLjIwNjIuNjI1M0wyLjI2NiAxNS4xMjcxYy0uMjc3My40NTE4LS4yNzE4IDEuMDA5MS4wMTU4IDEuNDU1NWw0LjM3NTkgNi43Nzg2Yy4yNjA4LjQwNDYuNzEyNy42Mzg4IDEuMTgyMy42Mzg4LjEzMzIgMCAuMjY3LS4wMTg4LjM5ODctLjA1NzdsMTIuNzAxOS0zLjc1NjhjLjM4OTEtLjExNTEuNzA3Mi0uMzkwNC44NzM3LS43NTUzcy4xNjMzLS43ODI4LS4wMDc1LTEuMTQ1NHptLTEuODQ4MS43NTE5TDkuMTgxNCAyMi4yMjQyYy0uMzI5Mi4wOTc1LS42NDQ4LS4xODczLS41NzU2LS41MTk0bDMuODUwMS0xOC40Mzg2Yy4wNzItLjM0NDguNTQ4Ni0uMzk5Ni42OTktLjA4MDNsNy4xMjg4IDE1LjEzOGMuMTM0NC4yODU2LS4wMTkuNjIyNC0uMzI1LjcxMjh6Ii8+PC9zdmc+",
401
449
  url: "https://www.prisma.io",
402
450
  spectrum: "beaten_path",
@@ -448,7 +496,10 @@ const features = [
448
496
  category: "Hosting",
449
497
  label: "Cloudflare",
450
498
  flag: "cloudflare",
451
- llms: "https://developers.cloudflare.com/workers/llms.txt",
499
+ skill: {
500
+ description: "Cloudflare Workers — the platform this app deploys to. Use when deploying, editing `wrangler.jsonc`, adding bindings (KV, D1, R2, secrets/env), using Workers runtime APIs, or debugging the build and deploy.",
501
+ llms: "https://developers.cloudflare.com/workers/llms.txt"
502
+ },
452
503
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyLjE5ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDExNyI+PHBhdGggZmlsbD0iI2ZiYWQ0MSIgZD0iTTIwNS41MiA1MC44MTNjLS44NTggMC0xLjcwNS4wMy0yLjU1MS4wNThxLS4yMDcuMDEyLS4zOTguMDk0YTEuNDIgMS40MiAwIDAgMC0uOTIuOTk0bC0zLjYyOCAxMi42NzJjLTEuNTY1IDUuNDQ5LS45ODMgMTAuNDggMS42NDYgMTQuMTc0YzIuNDEgMy40MTYgNi40MiA1LjQyMSAxMS4yODkgNS42NTVsMTkuNjc5IDEuMTk0Yy41ODUuMDMgMS4wOTIuMzEyIDEuNC43NzZhMS45MiAxLjkyIDAgMCAxIC4yIDEuNjkyYTIuNSAyLjUgMCAwIDEtMi4xMzQgMS42NjJsLTIwLjQ0OCAxLjE5M2MtMTEuMTEuNTE1LTIzLjA2MiA5LjU4LTI3LjI1NSAyMC42MzNsLTEuNDc0IDMuOWExLjA5MiAxLjA5MiAwIDAgMCAuOTY3IDEuNDloNzAuNDI1YTEuODcgMS44NyAwIDAgMCAxLjgxLTEuMzY1QTUxLjIgNTEuMiAwIDAgMCAyNTYgMTAxLjgyOGMwLTI4LjE2LTIyLjU4Mi01MC45ODQtNTAuNDQ5LTUwLjk4NCIvPjxwYXRoIGZpbGw9IiNmNjgyMWYiIGQ9Im0xNzQuNzgyIDExNS4zNjJsMS4zMDMtNC41ODNjMS41NjgtNS40NDkuOTg3LTEwLjQ4LTEuNjM5LTE0LjE3M2MtMi40MTgtMy40MTctNi40MjQtNS40MjItMTEuMjk2LTUuNjU2bC05Mi4zMTItMS4xOTNhMS44MiAxLjgyIDAgMCAxLTEuNDU5LS43NzZhMS45MiAxLjkyIDAgMCAxLS4yMDMtMS42OTNhMi41IDIuNSAwIDAgMSAyLjE1NC0xLjY2Mmw5My4xNzMtMS4xOTNjMTEuMDYzLS41MTEgMjMuMDE1LTkuNTggMjcuMjA4LTIwLjYzM2w1LjMxMy0xNC4wNGMuMjE0LS41OTYuMjctMS4yMzguMTU2LTEuODZDMTkxLjEyNiAyMC41MSAxNjYuOTEgMCAxMzcuOTYgMEMxMTEuMjY5IDAgODguNjI2IDE3LjQwMyA4MC41IDQxLjU5NmEyNyAyNyAwIDAgMC0xOS4xNTYtNS4zNTlDNDguNTQ5IDM3LjUyNCAzOC4yNSA0Ny45NDYgMzYuOTc5IDYwLjg4YTI3LjkgMjcuOSAwIDAgMCAuNzAyIDkuNjQyQzE2Ljc3MyA3MS4xNDUgMCA4OC40NTQgMCAxMDkuNzI2YzAgMS45MjMuMTM3IDMuODE4LjQxMyA1LjY2N2MuMTE1Ljg5Ny44NzkgMS41NyAxLjc4MyAxLjU2OGgxNzAuNDhhMi4yMiAyLjIyIDAgMCAwIDIuMTA2LTEuNjMiLz48L3N2Zz4=",
453
504
  url: "https://developers.cloudflare.com/",
454
505
  tagline: "Create full-stack applications that are instantly deployed to the Cloudflare global network",
@@ -465,7 +516,10 @@ const features = [
465
516
  category: "Hosting",
466
517
  label: "EdgeOne Pages",
467
518
  flag: "edgeone",
468
- llms: "https://edgeone.ai/llms.txt",
519
+ skill: {
520
+ description: "Tencent EdgeOne Pages — the platform this app deploys to. Use when deploying, configuring the project, managing environment variables, or working with edge functions and KV storage.",
521
+ llms: "https://edgeone.ai/llms.txt"
522
+ },
469
523
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgPHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTI3Ljc3OCAxNi40OTRhMTQuMSAxNC4xIDAgMCAwIC4wNjMtNC42MTEuNTQ1LjU0NSAwIDAgMC0uNTQzLS40NTloLTkuMDA0YS40NDguNDQ4IDAgMCAxLS40MzMtLjU2NGwxLjA2Ni0zLjk3OGEuNjcuNjcgMCAwIDEgLjY0OS0uNDk4aDUuMzQ4Yy4zNTUgMCAuNTY2LS4zOTIuMzU1LS42NzhBMTMuOTggMTMuOTggMCAwIDAgMTQgMEM2LjI2OCAwIDAgNi4yNjggMCAxNGMwIDMuNTIgMS4zIDYuNzM3IDMuNDQ0IDkuMTk3LjIyOS4yNjIuNjQ4LjE1My43MzgtLjE4MmwzLjA5Ny0xMS42MTZhLjMzNi4zMzYgMCAwIDAtLjMyNC0uNDIzaC0yLjY5YS40NDguNDQ4IDAgMCAxLS40MzQtLjU2M2wuODc0LTMuMjc2YS41Ny41NyAwIDAgMSAuNTQzLS40MiAxOC40IDE4LjQgMCAwIDAgOC4zOTktMi4yMzNjLjI2Ni0uMTQ1LjU4Ny4wOTguNTEuMzlsLTUuNyAyMS4zNjlhLjY1LjY1IDAgMCAwIC4zOC43NzZjMS41OTguNjM0IDMuMzQuOTgyIDUuMTYyLjk4MiA0LjQyIDAgOC4zNi0yLjA0NyAxMC45MjYtNS4yNDUuMjI3LS4yODQuMDE4LS42OTEtLjM0NS0uNjkxaC05LjEzOGEuNDQ4LjQ0OCAwIDAgMS0uNDMzLS41NjRsMS4wNjYtMy45NzhhLjY3LjY3IDAgMCAxIC42NDktLjQ5OGgxMC40MDdhLjY1LjY1IDAgMCAwIC42NDYtLjUzIi8+CiAgPGRlZnM+CiAgICA8bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSI0LjgxNiIgeDI9IjIyLjI4OCIgeTE9IjIuMzUyIiB5Mj0iMjMuMTg0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwZGYiLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMGM2MGYyIi8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KPC9zdmc+Cg==",
470
524
  url: "https://pages.edgeone.ai",
471
525
  tagline: "A better way to build full-stack Web",
@@ -481,7 +535,10 @@ const features = [
481
535
  category: "Hosting",
482
536
  label: "Vercel",
483
537
  flag: "vercel",
484
- llms: "https://vercel.com/llms.txt",
538
+ skill: {
539
+ description: "Vercel — the platform this app deploys to. Use when deploying, configuring the project (build output, routing, regions), managing environment variables, or using the Vercel CLI.",
540
+ llms: "https://vercel.com/llms.txt"
541
+ },
485
542
  image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Im0xMiAxLjYwOCAxMiAyMC43ODRIMFoiLz48L3N2Zz4=",
486
543
  url: "https://vercel.com",
487
544
  tagline: "Develop with your favorite tools. Launch globally, instantly. Keep pushing",
@@ -498,7 +555,10 @@ const features = [
498
555
  category: "Hosting",
499
556
  label: "Netlify",
500
557
  flag: "netlify",
501
- llms: "https://docs.netlify.com/llms.txt",
558
+ skill: {
559
+ description: "Netlify — the platform this app deploys to. Use when deploying, configuring the build, managing environment variables, redirects and headers, serverless/edge functions, or domains.",
560
+ llms: "https://docs.netlify.com/llms.txt"
561
+ },
502
562
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE0ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyNiI+PHBhdGggZmlsbD0iIzA1QkRCQSIgZD0iTTY5LjE4MSAxODguMDg3aC0yLjQxN2wtMTIuMDY1LTEyLjA2NXYtMi40MTdsMTguNDQ0LTE4LjQ0NGgxMi43NzhsMS43MDQgMS43MDR2MTIuNzc4ek01NC42OTkgNTEuNjI4di0yLjQxN2wxMi4wNjUtMTIuMDY1aDIuNDE3TDg3LjYyNSA1NS41OXYxMi43NzhsLTEuNzA0IDEuNzA0SDczLjE0M3oiLz48cGF0aCBmaWxsPSIjMDE0ODQ3IiBkPSJNMTYwLjkwNiAxNDkuMTk4aC0xNy41NTJsLTEuNDY2LTEuNDY2di00MS4wODljMC03LjMxLTIuODczLTEyLjk3Ni0xMS42ODktMTMuMTc0Yy00LjUzNy0uMTE5LTkuNzI3IDAtMTUuMjc0LjIxOGwtLjgzMy44NTJ2NTMuMTczbC0xLjQ2NiAxLjQ2Nkg5NS4wNzRsLTEuNDY2LTEuNDY2di03MC4xOWwxLjQ2Ni0xLjQ2N2gzOS41MDNjMTUuMzU0IDAgMjcuNzk1IDEyLjQ0MSAyNy43OTUgMjcuNzk1djQzLjg4MmwtMS40NjYgMS40NjZaIi8+PHBhdGggZmlsbD0iIzA1QkRCQSIgZD0iTTcxLjY3NyAxMjIuODg5SDEuNDY2TDAgMTIxLjQyM1YxMDMuODNsMS40NjYtMS40NjZoNzAuMjExbDEuNDY2IDEuNDY2djE3LjU5M3ptMTgyLjg1NyAwaC03MC4yMTFsLTEuNDY2LTEuNDY2VjEwMy44M2wxLjQ2Ni0xLjQ2Nmg3MC4yMTFMMjU2IDEwMy44M3YxNy41OTN6TTExNy44NzYgNTQuMTI0VjEuNDY2TDExOS4zNDIgMGgxNy41OTNsMS40NjYgMS40NjZ2NTIuNjU4bC0xLjQ2NiAxLjQ2NmgtMTcuNTkzem0wIDE2OS42NjN2LTUyLjY1OGwxLjQ2Ni0xLjQ2NmgxNy41OTNsMS40NjYgMS40NjZ2NTIuNjU4bC0xLjQ2NiAxLjQ2NWgtMTcuNTkzeiIvPjwvc3ZnPg==",
503
563
  url: "https://www.netlify.com",
504
564
  tagline: "Push your ideas to the web",
@@ -525,7 +585,10 @@ const features = [
525
585
  category: "Hosting",
526
586
  label: "Docker",
527
587
  flag: "docker",
528
- llms: "https://docs.docker.com/llms.txt",
588
+ skill: {
589
+ description: "Docker — used to containerize and run this app. Use when editing the `Dockerfile` or Compose file, building or running images, managing env and volumes, or debugging the container build.",
590
+ llms: "https://docs.docker.com/llms.txt"
591
+ },
529
592
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNMTI0LjggNTIuMWMtNC4zLTIuNS0xMC0yLjgtMTQuOC0xLjQtLjYtNS4yLTQtOS43LTgtMTIuOWwtMS42LTEuMy0xLjQgMS42Yy0yLjcgMy4xLTMuNSA4LjMtMy4xIDEyLjMuMyAyLjkgMS4yIDUuOSAzIDguMy0xLjQuOC0yLjkgMS45LTQuMyAyLjQtMi44IDEtNS45IDItOC45IDJINzlWNDlINjZWMjRINTF2MTJIMjZ2MTNIMTN2MTRIMS44bC0uMiAxLjVjLS41IDYuNC4zIDEyLjYgMyAxOC41bDEuMSAyLjIuMS4yYzcuOSAxMy40IDIxLjcgMTkgMzYuOCAxOSAyOS4yIDAgNTMuMy0xMy4xIDY0LjMtNDAuNiA3LjQuNCAxNS0xLjggMTguNi04LjlsLjktMS44LTEuNi0xek0yOCAzOWgxMHYxMUgyOFYzOXptMTMuMSA0NC4yYzAgMS43LTEuNCAzLjEtMy4xIDMuMS0xLjcgMC0zLjEtMS40LTMuMS0zLjEgMC0xLjcgMS40LTMuMSAzLjEtMy4xIDEuNy4xIDMuMSAxLjQgMy4xIDMuMXpNMjggNTJoMTB2MTFIMjhWNTJ6bS0xMyAwaDExdjExSDE1VjUyem0yNy43IDUwLjJjLTE1LjgtLjEtMjQuMy01LjQtMzEuMy0xMi40IDIuMS4xIDQuMS4yIDUuOS4yIDEuNiAwIDMuMiAwIDQuNy0uMSAzLjktLjIgNy4zLS43IDEwLjEtMS41IDIuMyA1LjMgNi41IDEwLjIgMTQgMTMuOGgtMy40ek01MSA2M0g0MFY1MmgxMXYxMXptMC0xM0g0MFYzOWgxMXYxMXptMTMgMTNINTNWNTJoMTF2MTF6bTAtMTNINTNWMzloMTF2MTF6bTAtMTNINTNWMjZoMTF2MTF6bTEzIDI2SDY2VjUyaDExdjExek0zOC44IDgxLjJjLS4yLS4xLS41LS4yLS44LS4yLTEuMiAwLTIuMiAxLTIuMiAyLjIgMCAxLjIgMSAyLjIgMi4yIDIuMnMyLjItMSAyLjItMi4yYzAtLjMtLjEtLjYtLjItLjgtLjIuMy0uNC41LS44LjUtLjUgMC0uOS0uNC0uOS0uOS4xLS40LjMtLjcuNS0uOHoiIGZpbGw9IiMwMTlCQzYiPjwvcGF0aD48L3N2Zz4=",
530
593
  url: "https://www.docker.com/",
531
594
  tagline: "A safer container ecosystem, for everyone",
@@ -538,7 +601,10 @@ const features = [
538
601
  category: "Hosting",
539
602
  label: "Dokploy",
540
603
  flag: "dokploy",
541
- llms: "https://docs.dokploy.com/llms.txt",
604
+ skill: {
605
+ description: "Dokploy — the self-hosted PaaS this app deploys to (it builds the app's Docker image). Use when deploying, configuring the application or environment variables, setting up domains, or auto-deploy from Git.",
606
+ llms: "https://docs.dokploy.com/llms.txt"
607
+ },
542
608
  dependsOn: ["docker"],
543
609
  image: "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwLDYwMCIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI2MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIgLz48L3N2Zz4=",
544
610
  url: "https://dokploy.com",
@@ -566,7 +632,10 @@ const features = [
566
632
  category: "Linter",
567
633
  label: "Oxlint",
568
634
  flag: "oxlint",
569
- llms: "https://oxc.rs/llms.txt",
635
+ skill: {
636
+ description: "Oxlint — the fast Rust-based linter for this project. Use when running the linter, fixing lint errors, configuring `.oxlintrc.json`, or enabling and disabling rules or plugins.",
637
+ llms: "https://oxc.rs/llms.txt"
638
+ },
570
639
  image: "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQwIDI0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj4KPHBhdGggZD0iTTIwIDIwaDIwMHYyMDBIMjB6IiBmaWxsPSIjOTFFREU5Ii8+CjxwYXRoIGQ9Ik0yMjkgMjIzSDEzdi00My41czE5LjE4LTE1LjggMjguNS0xNi41YzExLjg0LS44OSAxNC43OCAzLjYgMjYuNSA1LjUgMTIuMzMgMiAyMC4yNS0xMC45IDMyLjUtOC41IDEyLjUgMi40NCAyOC42NyAxMS44NiAzOSAxMS41IDIxLjg0LS43NiAyMC41NS00Ljg3IDM4LjUtMSA3LjYzIDEuNjUgMTUuNzctMTQuNDIgMjguNS0xMiA2LjQ1IDEuMjIgMjIuNSAyLjUgMjIuNSAyLjV2NjJaIiBmaWxsPSIjNDhBQ0JBIi8+CjxwYXRoIGQ9Ik0yMjIgMjIzSDEwdi00MHMxOS42OC0xMC44IDI5LTExLjVjMTEuODQtLjg5IDE0LjI4IDcuOTMgMjYgOS44NCAxMi4zMyAyIDE2Ljc1LTEwLjI0IDI5LTcuODQgMTIuNSAyLjQ0IDIyLjY3IDE0LjM2IDMzIDE0IDIxLjg0LS43NiAyMy4wNS0xMS4zNyA0MS03LjUgNy42MyAxLjY1IDkuNSA1LjUgMjcuNSAxLjM0UzIyMiAxODMgMjIyIDE4M3Y0MFoiIGZpbGw9IiMyQjNDNUEiLz4KPC9nPgo8cGF0aCBkPSJNMTI3LjAyIDQyLjQ5YTE3IDE3IDAgMSAwLTE0LjA0IDBMMTEyLjU1IDU1aC0uMDVsLTIzLjczIDEuNzlhMyAzIDAgMCAwLTIuNzcgM3Y2LjQzYTMgMyAwIDAgMCAyLjc3IDNMMTEyIDcxbC0xLjEgNDEuNzdjLS4zNCAxMi42MS0yLjQgMjguMDctMTQuNzEgMzAuNzctMS4zNy4zLTIuNzcuNDYtNC4xOS40Ni03LjM5IDAtMTUuOTEtOS4xLTIxLjM3LTE4LjQyYTYyLjcgNjIuNyAwIDAgMSA2LjY0LTIuNDRjMS4zLS40IDEuNTUtMi4yMi40Mi0yLjk3LTguMTgtNS40LTE0LjY3LTEyLjY3LTE4LjY1LTIxLjA2LS41NS0xLjE2LTIuMi0xLjI0LTIuNzUtLjA5YTY1LjA3IDY1LjA3IDAgMCAwLTMuNTIgOSA2Mi40IDYyLjQgMCAwIDAtMi4wOCAyNy42NGwuMS42Yy4yIDEuMiAxLjY4IDEuNjMgMi41Ni43OGE1NS40MyA1NS40MyAwIDAgMSA1LjIzLTQuNDdDNjguNjMgMTY0LjIgMTAyLjIyIDE4MCAxMjAgMTgwYzE3Ljc5IDAgNTEuMzktMTUuODIgNjEuNDItNDcuNDVhNTUuMzggNTUuMzggMCAwIDEgNS4yNCA0LjQ4Yy44Ny44NSAyLjM3LjQyIDIuNTYtLjc4bC4wNS0uMzIuMDQtLjI3YTYyLjU3IDYyLjU3IDAgMCAwLTIuMDctMjcuNjMgNjUuMjEgNjUuMjEgMCAwIDAtMy41LTljLS41NC0xLjE1LTIuMi0xLjA2LTIuNzQuMS0zLjk3IDguMzgtMTAuNDMgMTUuNjQtMTguNTcgMjEuMDQtMS4xMy43NS0uODcgMi41Ny40MyAyLjk3YTYxLjk4IDYxLjk4IDAgMCAxIDYuNTMgMi40MWMtNS40NiA5LjM0LTE0IDE4LjQ1LTIxLjM5IDE4LjQ1YTE5LjQgMTkuNCAwIDAgMS00LjE4LS40NmMtMTIuMzMtMi43LTE0LjM4LTE4LjE2LTE0LjcyLTMwLjc3TDEyOCA3MWwyMy4yMy0xLjc5YTMgMyAwIDAgMCAyLjc3LTIuOTl2LTYuNDRhMyAzIDAgMCAwLTIuNzctMi45OUwxMjcuNSA1NWgtLjA1bC0uNDMtMTIuNTFaTTEzMCAyN2ExMCAxMCAwIDEgMS0yMCAwIDEwIDEwIDAgMCAxIDIwIDBaIiBmaWxsPSIjRkY5MTVDIiBzdHJva2U9IiMyQjNDNUEiIHN0cm9rZS13aWR0aD0iOCIgcGFpbnQtb3JkZXI9InN0cm9rZSIvPgo8cGF0aCBkPSJNODYgNjcuMTVhMiAyIDAgMCAwIDEuODUgMkwxMTIgNzFsNi42My02LjYzYS44LjggMCAwIDAtLjU2LTEuMzdIODZ2NC4xNVpNMTgyLjEyIDk4LjgxYS45LjkgMCAwIDEgMS41Ny4xIDY1LjI2IDY1LjI2IDAgMCAxIDMuNTUgOS4xMiA2Mi41NyA2Mi41NyAwIDAgMSAxLjk4IDI4LjIyYy0uMiAxLjItMS42OSAxLjYzLTIuNTcuNzhhNTYuNjkgNTYuNjkgMCAwIDAtMTEuMDktOC4zNiAxLjU1IDEuNTUgMCAwIDEtLjY0LTEuOThjMy4zNy03LjU4IDUuODUtMTYuNjcgNy4wNS0yNy40N2EuOTQuOTQgMCAwIDEgLjE1LS40WiIgZmlsbD0iIzhBMzgwRiIvPgo8cGF0aCBkPSJtMTI3IDQyIC41IDEzLTUuODIgNS40M2ExIDEgMCAwIDEtMS42OC0uNzNWNDJoN1ptNTcgNzhjLTQgNDAtNDQgNjAtNjQgNjBWNjQuNWExLjUgMS41IDAgMCAxIDEuNS0xLjVIMTU0djMuMjlhMyAzIDAgMCAxLTIuNyAyLjk4TDEyOCA3MWwxLjEgNDEuNzdjLjM0IDEyLjYxIDIuMzcgMjguMSAxNC43IDMwLjc4YTE5IDE5IDAgMCAwIDQuMTMuNDUgNSA1IDAgMCAwLTMuNjUgMS42MmMtNC44NyA1LjgtMTAuNCAxMS42NC0xOC41NyAxNC4yOCAyMS41IDEgNTEuMS0xMy42MyA1Ni4yOS02MC45bDIgMjFaIiBmaWxsPSIjOEEzODBGIi8+CjxwYXRoIGQ9Ik0xMjIgMzkuOWMtMS4xLjExLTIgMS0yIDIuMXMuOSAyLjAxIDIgMS44OGExNyAxNyAwIDAgMCAxMC4wMi00Ljg2QTE3IDE3IDAgMCAwIDEzNyAyNy4wOGEuMDguMDggMCAwIDAtLjA4LS4wOC4wOC4wOCAwIDAgMC0uMDguMDdDMTM1Ljc5IDMzLjggMTI5LjY3IDM5LjEgMTIyIDM5LjlaIiBmaWxsPSIjOEEzODBGIi8+CjxjbGlwUGF0aCBpZD0iYSI+CjxyZWN0IHg9IjIwIiB5PSIyMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHJ4PSIxMDAiLz4KPC9jbGlwUGF0aD4KPC9zdmc+Cg==",
571
640
  url: "https://oxc.rs/docs/guide/usage/linter.html",
572
641
  spectrum: "bleeding_edge"
@@ -583,7 +652,10 @@ const features = [
583
652
  category: "Linter",
584
653
  label: "Prettier",
585
654
  flag: "prettier",
586
- llms: "https://prettier.io/llms.txt",
655
+ skill: {
656
+ description: "Prettier — the code formatter for this project. Use when formatting code, configuring `prettier.config.js` options, ignoring files, or adding a Prettier plugin.",
657
+ llms: "https://prettier.io/llms.txt"
658
+ },
587
659
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDI1NiI+PHJlY3Qgd2lkdGg9IjI0LjM4MSIgaGVpZ2h0PSIxMi4xOSIgeD0iMTgyLjg1NyIgeT0iNDguNzYyIiBmaWxsPSIjNTZCM0I0IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI3My4xNDMiIGhlaWdodD0iMTIuMTkiIHk9IjI0My44MSIgZmlsbD0iI0VBNUU1RSIgcng9IjUiLz48cmVjdCB3aWR0aD0iNDguNzYyIiBoZWlnaHQ9IjEyLjE5IiB4PSIxNDYuMjg2IiB5PSIxNDYuMjg2IiBmaWxsPSIjQkY4NUJGIiByeD0iNSIvPjxyZWN0IHdpZHRoPSI2MC45NTIiIGhlaWdodD0iMTIuMTkiIHg9IjczLjE0MyIgeT0iMTQ2LjI4NiIgZmlsbD0iI0VBNUU1RSIgcng9IjUiLz48cmVjdCB3aWR0aD0iNjAuOTUyIiBoZWlnaHQ9IjEyLjE5IiB5PSIxNDYuMjg2IiBmaWxsPSIjNTZCM0I0IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI3My4xNDMiIGhlaWdodD0iMTIuMTkiIHk9IjE5NS4wNDgiIGZpbGw9IiNCRjg1QkYiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjczLjE0MyIgaGVpZ2h0PSIxMi4xOSIgeT0iOTcuNTI0IiBmaWxsPSIjQkY4NUJGIiByeD0iNSIvPjxyZWN0IHdpZHRoPSIxMzQuMDk1IiBoZWlnaHQ9IjEyLjE5IiB4PSI2MC45NTIiIHk9IjI0LjM4MSIgZmlsbD0iI0Y3QkEzRSIgcng9IjUiLz48cmVjdCB3aWR0aD0iNDguNzYyIiBoZWlnaHQ9IjEyLjE5IiB5PSIyNC4zODEiIGZpbGw9IiNFQTVFNUUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjI0LjM4MSIgaGVpZ2h0PSIxMi4xOSIgeD0iNDguNzYyIiB5PSIyMTkuNDI5IiBmaWxsPSIjRjdCQTNFIiByeD0iNSIvPjxyZWN0IHdpZHRoPSIyNC4zODEiIGhlaWdodD0iMTIuMTkiIHg9IjQ4Ljc2MiIgeT0iNzMuMTQzIiBmaWxsPSIjNTZCM0I0IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIzNi41NzEiIGhlaWdodD0iMTIuMTkiIHk9IjIxOS40MjkiIGZpbGw9IiM1NkIzQjQiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjM2LjU3MSIgaGVpZ2h0PSIxMi4xOSIgeT0iNzMuMTQzIiBmaWxsPSIjRjdCQTNFIiByeD0iNSIvPjxyZWN0IHdpZHRoPSIyNC4zODEiIGhlaWdodD0iMTIuMTkiIHg9IjE1OC40NzYiIHk9IjIxOS40MjkiIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI2MC45NTIiIGhlaWdodD0iMTIuMTkiIHg9Ijg1LjMzMyIgeT0iMjE5LjQyOSIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjYwLjk1MiIgaGVpZ2h0PSIxMi4xOSIgeD0iMTk1LjA0OCIgeT0iMjE5LjQyOSIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjEwOS43MTQiIGhlaWdodD0iMTIuMTkiIHg9Ijk3LjUyNCIgeT0iMTIxLjkwNSIgZmlsbD0iIzU2QjNCNCIgcng9IjUiLz48cmVjdCB3aWR0aD0iNDguNzYyIiBoZWlnaHQ9IjEyLjE5IiB4PSIzNi41NzEiIHk9IjEyMS45MDUiIGZpbGw9IiNGN0JBM0UiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjI0LjM4MSIgaGVpZ2h0PSIxMi4xOSIgeT0iMTIxLjkwNSIgZmlsbD0iI0VBNUU1RSIgcng9IjUiLz48cmVjdCB3aWR0aD0iNjAuOTUyIiBoZWlnaHQ9IjEyLjE5IiB4PSIxMDkuNzE0IiB5PSI0OC43NjIiIGZpbGw9IiNCRjg1QkYiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9Ijk3LjUyNCIgaGVpZ2h0PSIxMi4xOSIgeT0iNDguNzYyIiBmaWxsPSIjNTZCM0I0IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIxMjEuOTA1IiBoZWlnaHQ9IjEyLjE5IiB4PSIzNi41NzEiIHk9IjE3MC42NjciIGZpbGw9IiNGN0JBM0UiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjI0LjM4MSIgaGVpZ2h0PSIxMi4xOSIgeT0iMTcwLjY2NyIgZmlsbD0iI0JGODVCRiIgcng9IjUiLz48cmVjdCB3aWR0aD0iNzMuMTQzIiBoZWlnaHQ9IjEyLjE5IiB4PSIxNDYuMjg2IiB5PSI3My4xNDMiIGZpbGw9IiNFQTVFNUUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjczLjE0MyIgaGVpZ2h0PSIxMi4xOSIgeD0iMTQ2LjI4NiIgeT0iOTcuNTI0IiBmaWxsPSIjRjdCQTNFIiByeD0iNSIvPjxyZWN0IHdpZHRoPSIxNTguNDc2IiBoZWlnaHQ9IjEyLjE5IiBmaWxsPSIjNTZCM0I0IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI4NS4zMzMiIGhlaWdodD0iMTIuMTkiIHg9IjE3MC42NjciIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIzNi41NzEiIGhlaWdodD0iMTIuMTkiIHg9IjE3MC42NjciIHk9IjE3MC42NjciIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIzNi41NzEiIGhlaWdodD0iMTIuMTkiIHg9IjIxOS40MjkiIHk9IjE3MC42NjciIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI0OC43NjIiIGhlaWdodD0iMTIuMTkiIHg9IjIwNy4yMzgiIHk9IjE0Ni4yODYiIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI0OC43NjIiIGhlaWdodD0iMTIuMTkiIHg9IjIwNy4yMzgiIHk9IjI0LjM4MSIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjM2LjU3MSIgaGVpZ2h0PSIxMi4xOSIgeD0iMjE5LjQyOSIgeT0iMTIxLjkwNSIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjM2LjU3MSIgaGVpZ2h0PSIxMi4xOSIgeD0iMjE5LjQyOSIgeT0iNDguNzYyIiBmaWxsPSIjRDBENEQ4IiBvcGFjaXR5PSIuNSIgcng9IjUiLz48cmVjdCB3aWR0aD0iMjQuMzgxIiBoZWlnaHQ9IjEyLjE5IiB4PSIyMzEuNjE5IiB5PSI3My4xNDMiIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIyNC4zODEiIGhlaWdodD0iMTIuMTkiIHg9IjIzMS42MTkiIHk9Ijk3LjUyNCIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjEyMS45MDUiIGhlaWdodD0iMTIuMTkiIHg9IjEzNC4wOTUiIHk9IjE5NS4wNDgiIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSIzNi41NzEiIGhlaWdodD0iMTIuMTkiIHg9Ijg1LjMzMyIgeT0iMTk1LjA0OCIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjczLjE0MyIgaGVpZ2h0PSIxMi4xOSIgeD0iMTgyLjg1NyIgeT0iMjQzLjgxIiBmaWxsPSIjRDBENEQ4IiBvcGFjaXR5PSIuNSIgcng9IjUiLz48cmVjdCB3aWR0aD0iODUuMzMzIiBoZWlnaHQ9IjEyLjE5IiB4PSI4NS4zMzMiIHk9IjI0My44MSIgZmlsbD0iI0QwRDREOCIgb3BhY2l0eT0iLjUiIHJ4PSI1Ii8+PHJlY3Qgd2lkdGg9IjQ4Ljc2MiIgaGVpZ2h0PSIxMi4xOSIgeD0iODUuMzMzIiB5PSI3My4xNDMiIGZpbGw9IiNEMEQ0RDgiIG9wYWNpdHk9Ii41IiByeD0iNSIvPjxyZWN0IHdpZHRoPSI0OC43NjIiIGhlaWdodD0iMTIuMTkiIHg9Ijg1LjMzMyIgeT0iOTcuNTI0IiBmaWxsPSIjRDBENEQ4IiBvcGFjaXR5PSIuNSIgcng9IjUiLz48L3N2Zz4=",
588
660
  url: "https://prettier.io",
589
661
  tagline: "An opinionated code formatter",
@@ -597,7 +669,10 @@ const features = [
597
669
  category: "Error tracking",
598
670
  label: "Sentry",
599
671
  flag: "sentry",
600
- llms: "https://docs.sentry.io/llms.txt",
672
+ skill: {
673
+ description: "Sentry — error and performance monitoring for this app. Use when capturing or handling exceptions, configuring the SDK and DSN, or setting up tracing, session replay, or source maps.",
674
+ llms: "https://docs.sentry.io/llms.txt"
675
+ },
601
676
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjEzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyNyI+PHBhdGggZmlsbD0iIzM2MkQ1OSIgZD0iTTE0OC4zNjggMTIuNDAzYTIzLjkzNSAyMy45MzUgMCAwIDAtNDEuMDAzIDBMNzMuNjQgNzAuMTY1YzUyLjQyNiAyNi4xNzQgODcuMDUgNzguMTc3IDkwLjk3NSAxMzYuNjQyaC0yMy42NzljLTMuOTE4LTUwLjExMy0zNC4wNjEtOTQuNDEtNzkuMjM4LTExNi40NDhsLTMxLjIxMyA1My45N2E4MS41OTUgODEuNTk1IDAgMCAxIDQ3LjMwNyA2Mi4zNzVoLTU0LjM4YTMuODk1IDMuODk1IDAgMCAxLTMuMTc4LTUuNjlsMTUuMDY5LTI1LjYyNmE1NS4wNDYgNTUuMDQ2IDAgMCAwLTE3LjIyMS05LjczOEwzLjE2NyAxOTEuMjc3YTIzLjI2OSAyMy4yNjkgMCAwIDAgOC42NjIgMzEuOTgyYTIzLjg4NCAyMy44ODQgMCAwIDAgMTEuNTgzIDMuMDc1aDc0LjQ3MWE5OS40MzIgOTkuNDMyIDAgMCAwLTQxLjAwMy04OC43MmwxMS44NC0yMC41YzM1LjY3OSAyNC41MDQgNTUuNzU0IDY2LjAzOCA1Mi43OSAxMDkuMjJoNjMuMDk0YzIuOTktNjUuNDMtMjkuMDQ3LTEyNy41MTItODQuMTA3LTE2Mi45ODZsMjMuOTM1LTQxLjAwMmEzLjk0NyAzLjk0NyAwIDAgMSA1LjM4Mi0xLjM4NGMyLjcxNiAxLjQ4NiAxMDMuOTkzIDE3OC4yMDggMTA1Ljg5IDE4MC4yNThhMy44OTUgMy44OTUgMCAwIDEtMy40ODYgNS43OTJoLTI0LjM5NmMuMzA3IDYuNTI2LjMwNyAxMy4wMzUgMCAxOS41MjhoMjQuNDk5QTIzLjUyOCAyMy41MjggMCAwIDAgMjU2IDIwMi45MWEyMy4wMTUgMjMuMDE1IDAgMCAwLTMuMTc4LTExLjY4NUwxNDguMzY4IDEyLjQwM1oiLz48L3N2Zz4=",
602
677
  url: "https://sentry.io"
603
678
  },
@@ -613,7 +688,10 @@ const features = [
613
688
  category: "Tooling",
614
689
  label: "Storybook",
615
690
  flag: "storybook",
616
- llms: "https://storybook.js.org/llms.txt",
691
+ skill: {
692
+ description: "Storybook — a workshop for building and testing UI components in isolation. Use when writing or updating stories (`*.stories.*`), configuring Storybook, or documenting and testing components.",
693
+ llms: "https://storybook.js.org/llms.txt"
694
+ },
617
695
  image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY0IDY0Ij48dGl0bGU+aWNvbi1zdG9yeWJvb2stc3F1YXJlPC90aXRsZT48ZGVmcz48cGF0aCBpZD0icGF0aC0xIiBkPSJNMS45NDY0OTk1NSw1Ny4xMzA5NDcyIEwwLjAwMjI1OTczMTE2LDUuOTU0NzY2NjMgQy0wLjA2MTk1MDg4MzMsNC4yNjQ2MTgxNCAxLjI0OTkyMjg4LDIuODMyMjM2OTcgMi45NTg3MTUxOSwyLjcyNjczNDE4IEw0Ny4wMjI2NTM4LDAuMDA2MTc2Mjg0OTEgQzQ4Ljc2MjAwMDUsLTAuMTAxMjEyOTYgNTAuMjYwMTQ1OCwxLjIwNDYyOTggNTAuMzY4ODU1LDIuOTIyODU3NzEgQzUwLjM3Mjk1MDUsMi45ODc1OTM5MSA1MC4zNzUsMy4wNTI0NDA2MyA1MC4zNzUsMy4xMTczMDMxNSBMNTAuMzc1LDU4Ljg4MjgwMjggQzUwLjM3NSw2MC42MDQzODMxIDQ4Ljk2MjIyOTYsNjIgNDcuMjE5NDg5NCw2MiBDNDcuMTcyMjc3Niw2MiA0Ny4xMjUwNzIxLDYxLjk5ODk1MzQgNDcuMDc3OTA4LDYxLjk5Njg2MDYgTDQuOTU4MjA5MDQsNjAuMTI4MDk5NyBDMy4zMTc4MTMzMyw2MC4wNTUzMTg5IDIuMDA4MDgyMDMsNTguNzUxOTE4IDEuOTQ2NDk5NTUsNTcuMTMwOTQ3MiBaIi8+PC9kZWZzPjxnIGlkPSJpY29uLXN0b3J5Ym9vay1zcXVhcmUiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiPjxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAwMDAwMCwgMS4wMDAwMDApIj48cGF0aCBpZD0iQ29tYmluZWQtU2hhcGUiIGZpbGw9IiNGRjQ3ODUiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTUwLjM2ODg1NSwyLjkyMjg1NzcxIEM1MC4zNzI5NTA1LDIuOTg3NTkzOTEgNTAuMzc1LDMuMDUyNDQwNjMgNTAuMzc1LDMuMTE3MzAzMTUgTDUwLjM3NSw1OC44ODI4MDI4IEM1MC4zNzUsNjAuNjA0MzgzMSA0OC45NjIyMjk2LDYyIDQ3LjIxOTQ4OTQsNjIgQzQ3LjE3MjI3NzYsNjIgNDcuMTI1MDcyMSw2MS45OTg5NTM0IDQ3LjA3NzkwOCw2MS45OTY4NjA2IEw0Ljk1ODIwOTA0LDYwLjEyODA5OTcgQzMuMzE3ODEzMzMsNjAuMDU1MzE4OSAyLjAwODA4MjAzLDU4Ljc1MTkxOCAxLjk0NjQ5OTU1LDU3LjEzMDk0NzIgTDAuMDAyMjU5NzMxMTYsNS45NTQ3NjY2MyBDLTAuMDYxOTUwODgzMyw0LjI2NDYxODE0IDEuMjQ5OTIyODgsMi44MzIyMzY5NyAyLjk1ODcxNTE5LDIuNzI2NzM0MTggTDM3LjQ5OSwwLjU5NCBMMzcuMTk4MTMyNCw3LjYyMDc4NzY2IEMzNy4xOTQ3MjI3LDcuNzAxNzk2NjQgMzcuMjEyODIyNCw3Ljc4MTc4NzMxIDM3LjI0OTk4NjksNy44NTMwNTUyNSBMMzcuMjkzNDE1OCw3LjkyMTEzMDI2IEMzNy40NTA1Mjk2LDguMTI1NzM2MzcgMzcuNzQ1ODAwMiw4LjE2NTc4Mjg4IDM3Ljk1MjkyMDksOC4wMTA1NzY3IEwzNy45NTI5MjA5LDguMDEwNTc2NyBMNDAuNzE1ODE5NSw1Ljk0MDE5Njc4IEw0My4wNDkzOTY1LDcuNzU2MTg1MzcgQzQzLjEzNjgzODgsNy44MjQyMzI3OSA0My4yNDU4NjM0LDcuODU5NDY1ODQgNDMuMzU3MTEwNiw3Ljg1NTYyODEzIEM0My42MTY5MjEzLDcuODQ2NjY1NTMgNDMuODIwMTg0NCw3LjYzMTMzOTEgNDMuODExMTExNSw3LjM3NDY4MzE2IEw0My44MTExMTE1LDcuMzc0NjgzMTYgTDQzLjU1LDAuMjIgTDQ3LjAyMjY1MzgsMC4wMDYxNzYyODQ5MSBDNDguNzYyMDAwNSwtMC4xMDEyMTI5NiA1MC4yNjAxNDU4LDEuMjA0NjI5OCA1MC4zNjg4NTUsMi45MjI4NTc3MSBaIi8+PG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjcGF0aC0xIi8+PC9tYXNrPjxwYXRoIGlkPSJTIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yOC45MzM4Mzc0LDIzLjQ4MTQzMzEgQzI4LjkzMzgzNzQsMjQuNjk0ODAyOCAzNy4xMzAwNTExLDI0LjExMzI2NjQgMzguMjMwMzIwNiwyMy4yNjA5NTc4IEMzOC4yMzAzMjA2LDE0Ljk5ODE5OTUgMzMuNzg0MTc2NCwxMC42NTYyNSAyNS42NDI1MzU5LDEwLjY1NjI1IEMxNy41MDA4OTUyLDEwLjY1NjI1IDEyLjkzOTI2NjgsMTUuMDY1NzU0MiAxMi45MzkyNjY4LDIxLjY4MDAxNCBDMTIuOTM5MjY2OCwzMy4xOTk4NDk5IDI4LjUyOTY0MjQsMzMuNDIwMzI1MSAyOC41Mjk2NDI0LDM5LjcwMzg3MiBDMjguNTI5NjQyNCw0MS40Njc2NzQ1IDI3LjY2MzUxMDUsNDIuNTE0OTMyMyAyNS43NTgwMjAxLDQyLjUxNDkzMjMgQzIzLjI3NTEwODQsNDIuNTE0OTMyMyAyMi4yOTM0OTIyLDQxLjI1MDQ2OTIgMjIuNDA4OTc2NSwzNi45NTEyMDA0IEMyMi40MDg5NzY1LDM2LjAxODUzMDQgMTIuOTM5MjY2OCwzNS43Mjc3NjIxIDEyLjY1MDU1NjEsMzYuOTUxMjAwNCBDMTEuOTE1MzgxMiw0Ny4zNjk4NTkxIDE4LjQyNDc2OTMsNTAuMzc1IDI1Ljg3MzUwNDQsNTAuMzc1IEMzMy4wOTEyNzA5LDUwLjM3NSAzOC43NSw0Ni41Mzg2MDY5IDM4Ljc1LDM5LjU5MzYzNDEgQzM4Ljc1LDI3LjI0NzAxNTkgMjIuOTI4NjU1NiwyNy41Nzc3Mjg5IDIyLjkyODY1NTYsMjEuNDU5NTM4NyBDMjIuOTI4NjU1NiwxOC45NzkxOTEyIDI0Ljc3NjQwMzksMTguNjQ4NDc4MyAyNS44NzM1MDQ0LDE4LjY0ODQ3ODMgQzI3LjAyODM0NywxOC42NDg0NzgzIDI5LjEwNzA2MzgsMTguODUxNDUxMyAyOC45MzM4Mzc0LDIzLjQ4MTQzMzEgWiIgbWFzaz0idXJsKCNtYXNrLTIpIi8+PHBhdGggaWQ9ImJvb2ttYXJrIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0zNi44MTI5MTY5LDcuMjc0MDYxMDYgTDM3LjEyMTUyMzMsMC4zNjY4MTQ5NzQgTDQzLjMyNjE1MDMsMCBMNDMuNTkzNDUwMyw3LjAzMjIyNjUzIEM0My42MDI3NTMxLDcuMjg0NDI5NDMgNDMuMzk0MzM5OSw3LjQ5NjAxOTkxIDQzLjEyNzk0NjQsNy41MDQ4MjcgQzQzLjAxMzg4MDQsNy41MDg1OTgxMiA0Mi45MDIwOTM1LDcuNDczOTc2MzcgNDIuODEyNDM1Niw3LjQwNzEwOTU5IEw0MC40MTk3MzIzLDUuNjIyNjI4ODEgTDM3LjU4NjgyOTYsNy42NTcwODcxOCBDMzcuMzc0NDYxMSw3LjgwOTYwMDUgMzcuMDcxNzA5Miw3Ljc3MDI0ODggMzYuOTEwNjE0Niw3LjU2OTE5MjY2IEMzNi44NDI4MDE4LDcuNDg0NTU4MDQgMzYuODA4MjU1NSw3LjM4MDE5OSAzNi44MTI5MTY5LDcuMjc0MDYxMDYgWiIgbWFzaz0idXJsKCNtYXNrLTIpIi8+PC9nPjwvZz48L3N2Zz4=",
618
696
  url: "https://storybook.js.org",
619
697
  tagline: "Build, test & document components",
@@ -625,63 +703,11 @@ const features = [
625
703
  },
626
704
  {
627
705
  category: "AI Agent",
628
- label: "Claude",
629
- flag: "claude",
630
- image: "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgc3R5bGU9ImZsZXg6bm9uZTtsaW5lLWhlaWdodDoxIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxZW0iIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkNsYXVkZTwvdGl0bGU+PHBhdGggZD0iTTQuNzA5IDE1Ljk1NWw0LjcyLTIuNjQ3LjA4LS4yMy0uMDgtLjEyOEg5LjJsLS43OS0uMDQ4LTIuNjk4LS4wNzMtMi4zMzktLjA5Ny0yLjI2Ni0uMTIyLS41NzEtLjEyMUwwIDExLjc4NGwuMDU1LS4zNTIuNDgtLjMyMS42ODYuMDYgMS41Mi4xMDMgMi4yNzguMTU4IDEuNjUyLjA5NyAyLjQ0OS4yNTVoLjM4OWwuMDU1LS4xNTctLjEzNC0uMDk4LS4xMDMtLjA5Ny0yLjM1OC0xLjU5Ni0yLjU1Mi0xLjY4OC0xLjMzNi0uOTcyLS43MjQtLjQ5MS0uMzY0LS40NjItLjE1OC0xLjAwOC42NTYtLjcyMi44ODEuMDYuMjI1LjA2MS44OTMuNjg2IDEuOTA4IDEuNDc2IDIuNDkxIDEuODMzLjM2NS4zMDQuMTQ1LS4xMDMuMDE5LS4wNzMtLjE2NC0uMjc0LTEuMzU1LTIuNDQ2LTEuNDQ2LTIuNDktLjY0NC0xLjAzMi0uMTctLjYxOWEyLjk3IDIuOTcgMCAwMS0uMTA0LS43MjlMNi4yODMuMTM0IDYuNjk2IDBsLjk5Ni4xMzQuNDIuMzY0LjYyIDEuNDE0IDEuMDAyIDIuMjI5IDEuNTU1IDMuMDMuNDU2Ljg5OC4yNDMuODMyLjA5MS4yNTVoLjE1OFY5LjAxbC4xMjgtMS43MDYuMjM3LTIuMDk1LjIzLTIuNjk1LjA4LS43Ni4zNzYtLjkxLjc0Ny0uNDkyLjU4NC4yOC40OC42ODUtLjA2Ny40NDQtLjI4NiAxLjg1MS0uNTU5IDIuOTAzLS4zNjQgMS45NDJoLjIxMmwuMjQzLS4yNDIuOTg1LTEuMzA2IDEuNjUyLTIuMDY0LjczLS44Mi44NS0uOTA0LjU0Ny0uNDMxaDEuMDMzbC43NiAxLjEyOS0uMzQgMS4xNjYtMS4wNjQgMS4zNDctLjg4MSAxLjE0Mi0xLjI2NCAxLjctLjc5IDEuMzYuMDczLjExLjE4OC0uMDIgMi44NTYtLjYwNiAxLjU0My0uMjggMS44NDEtLjMxNS44MzMuMzg4LjA5MS4zOTUtLjMyOC44MDctMS45NjkuNDg2LTIuMzA5LjQ2Mi0zLjQzOS44MTMtLjA0Mi4wMy4wNDkuMDYxIDEuNTQ5LjE0Ni42NjIuMDM2aDEuNjIybDMuMDIuMjI1Ljc5LjUyMi40NzQuNjM4LS4wNzkuNDg1LTEuMjE1LjYyLTEuNjQtLjM4OS0zLjgyOS0uOTEtMS4zMTItLjMyOWgtLjE4MnYuMTFsMS4wOTMgMS4wNjggMi4wMDYgMS44MSAyLjUwOSAyLjMzLjEyNy41NzgtLjMyMi40NTUtLjM0LS4wNDktMi4yMDUtMS42NTctLjg1MS0uNzQ3LTEuOTI2LTEuNjJoLS4xMjh2LjE3bC40NDQuNjQ5IDIuMzQ1IDMuNTIxLjEyMiAxLjA4LS4xNy4zNTMtLjYwOC4yMTMtLjY2OC0uMTIyLTEuMzc0LTEuOTI1LTEuNDE1LTIuMTY3LTEuMTQzLTEuOTQzLS4xNC4wOC0uNjc0IDcuMjU0LS4zMTYuMzctLjcyOS4yOC0uNjA3LS40NjEtLjMyMi0uNzQ3LjMyMi0xLjQ3Ni4zODktMS45MjQuMzE1LTEuNTMuMjg2LTEuOS4xNy0uNjMyLS4wMTItLjA0Mi0uMTQuMDE4LTEuNDM0IDEuOTY3LTIuMTggMi45NDUtMS43MjYgMS44NDUtLjQxNC4xNjQtLjcxNy0uMzcuMDY3LS42NjIuNDAxLS41ODkgMi4zODgtMy4wMzYgMS40NC0xLjg4Mi45My0xLjA4Ni0uMDA2LS4xNThoLS4wNTVMNC4xMzIgMTguNTZsLTEuMTMuMTQ2LS40ODctLjQ1Ni4wNjEtLjc0Ni4yMzEtLjI0MyAxLjkwOC0xLjMxMi0uMDA2LjAwNnoiIGZpbGw9IiNEOTc3NTciIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPjwvc3ZnPg==",
631
- url: "https://claude.com/claude-code",
632
- tagline: "Anthropic's agentic coding tool in your terminal",
633
- links: [{
634
- label: "Skills docs",
635
- href: "https://code.claude.com/docs/en/skills"
636
- }]
637
- },
638
- {
639
- category: "AI Agent",
640
- label: "Codex",
641
- flag: "codex",
642
- image: "data:image/svg+xml;base64,PHN2ZyBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgaGVpZ2h0PSIxZW0iIHN0eWxlPSJmbGV4Om5vbmU7bGluZS1oZWlnaHQ6MSIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMWVtIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxzdHlsZT5wYXRoe2ZpbGw6IzAwMH1AbWVkaWEocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOiNmZmZ9fTwvc3R5bGU+PHRpdGxlPkNvZGV4PC90aXRsZT48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04LjA4Ni40NTdhNi4xMDUgNi4xMDUgMCAwMTMuMDQ2LS40MTVjMS4zMzMuMTUzIDIuNTIxLjcyIDMuNTY0IDEuN2EuMTE3LjExNyAwIDAwLjEwNy4wMjljMS40MDgtLjM0NiAyLjc2Mi0uMjI0IDQuMDYxLjM2NmwuMDYzLjAzLjE1NC4wNzZjMS4zNTcuNzAzIDIuMzMgMS43NyAyLjkxOCAzLjE5OC4yNzguNjc5LjQxOCAxLjM4OC40MjEgMi4xMjZhNS42NTUgNS42NTUgMCAwMS0uMTggMS42MzEuMTY3LjE2NyAwIDAwLjA0LjE1NSA1Ljk4MiA1Ljk4MiAwIDAxMS41NzggMi44OTFjLjM4NSAxLjkwMS0uMDEgMy42MTUtMS4xODMgNS4xNGwtLjE4Mi4yMmE2LjA2MyA2LjA2MyAwIDAxLTIuOTM0IDEuODUxLjE2Mi4xNjIgMCAwMC0uMTA4LjEwMmMtLjI1NS43MzYtLjUxMSAxLjM2NC0uOTg3IDEuOTkyLTEuMTk5IDEuNTgyLTIuOTYyIDIuNDYyLTQuOTQ4IDIuNDUxLTEuNTgzLS4wMDgtMi45ODYtLjU4Ny00LjIxLTEuNzM2YS4xNDUuMTQ1IDAgMDAtLjE0LS4wMzJjLS41MTguMTY3LTEuMDQuMTkxLTEuNjA0LjE4NWE1LjkyNCA1LjkyNCAwIDAxLTIuNTk1LS42MjIgNi4wNTggNi4wNTggMCAwMS0yLjE0Ni0xLjc4MWMtLjIwMy0uMjY5LS40MDQtLjUyMi0uNTUxLS44MjFhNy43NCA3Ljc0IDAgMDEtLjQ5NS0xLjI4MyA2LjExIDYuMTEgMCAwMS0uMDE3LTMuMDY0LjE2Ni4xNjYgMCAwMC4wMDgtLjA3NC4xMTUuMTE1IDAgMDAtLjAzNy0uMDY0IDUuOTU4IDUuOTU4IDAgMDEtMS4zOC0yLjIwMiA1LjE5NiA1LjE5NiAwIDAxLS4zMzMtMS41ODkgNi45MTUgNi45MTUgMCAwMS4xODgtMi4xMzJjLjQ1LTEuNDg0IDEuMzA5LTIuNjQ4IDIuNTc3LTMuNDkzLjI4Mi0uMTg4LjU1LS4zMzQuODAyLS40MzguMjg2LS4xMi41NzMtLjIyLjg2MS0uMzA0YS4xMjkuMTI5IDAgMDAuMDg3LS4wODdBNi4wMTYgNi4wMTYgMCAwMTUuNjM1IDIuMzFDNi4zMTUgMS40NjQgNy4xMzIuODQ2IDguMDg2LjQ1N3ptLS44MDQgNy44NWEuODQ4Ljg0OCAwIDAwLTEuNDczLjg0MmwxLjY5NCAyLjk2NS0xLjY4OCAyLjg0OGEuODQ5Ljg0OSAwIDAwMS40Ni44NjRsMS45NC0zLjI3MmEuODQ5Ljg0OSAwIDAwLjAwNy0uODU0bC0xLjk0LTMuMzkzem01LjQ0NiA2LjI0YS44NDkuODQ5IDAgMDAwIDEuNjk1aDQuODQ4YS44NDkuODQ5IDAgMDAwLTEuNjk2aC00Ljg0OHoiPjwvcGF0aD48L3N2Zz4=",
643
- url: "https://developers.openai.com/codex",
644
- tagline: "OpenAI's coding agent",
645
- links: [{
646
- label: "Skills docs",
647
- href: "https://developers.openai.com/codex/skills"
648
- }]
649
- },
650
- {
651
- category: "AI Agent",
652
- label: "Gemini",
653
- flag: "gemini",
654
- image: "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjFlbSIgc3R5bGU9ImZsZXg6bm9uZTtsaW5lLWhlaWdodDoxIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxZW0iIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkdlbWluaTwvdGl0bGU+PHBhdGggZD0iTTIwLjYxNiAxMC44MzVhMTQuMTQ3IDE0LjE0NyAwIDAxLTQuNDUtMy4wMDEgMTQuMTExIDE0LjExMSAwIDAxLTMuNjc4LTYuNDUyLjUwMy41MDMgMCAwMC0uOTc1IDAgMTQuMTM0IDE0LjEzNCAwIDAxLTMuNjc5IDYuNDUyIDE0LjE1NSAxNC4xNTUgMCAwMS00LjQ1IDMuMDAxYy0uNjUuMjgtMS4zMTguNTA1LTIuMDAyLjY3OGEuNTAyLjUwMiAwIDAwMCAuOTc1Yy42ODQuMTcyIDEuMzUuMzk3IDIuMDAyLjY3N2ExNC4xNDcgMTQuMTQ3IDAgMDE0LjQ1IDMuMDAxIDE0LjExMiAxNC4xMTIgMCAwMTMuNjc5IDYuNDUzLjUwMi41MDIgMCAwMC45NzUgMGMuMTcyLS42ODUuMzk3LTEuMzUxLjY3Ny0yLjAwM2ExNC4xNDUgMTQuMTQ1IDAgMDEzLjAwMS00LjQ1IDE0LjExMyAxNC4xMTMgMCAwMTYuNDUzLTMuNjc4LjUwMy41MDMgMCAwMDAtLjk3NSAxMy4yNDUgMTMuMjQ1IDAgMDEtMi4wMDMtLjY3OHoiIGZpbGw9IiMzMTg2RkYiPjwvcGF0aD48cGF0aCBkPSJNMjAuNjE2IDEwLjgzNWExNC4xNDcgMTQuMTQ3IDAgMDEtNC40NS0zLjAwMSAxNC4xMTEgMTQuMTExIDAgMDEtMy42NzgtNi40NTIuNTAzLjUwMyAwIDAwLS45NzUgMCAxNC4xMzQgMTQuMTM0IDAgMDEtMy42NzkgNi40NTIgMTQuMTU1IDE0LjE1NSAwIDAxLTQuNDUgMy4wMDFjLS42NS4yOC0xLjMxOC41MDUtMi4wMDIuNjc4YS41MDIuNTAyIDAgMDAwIC45NzVjLjY4NC4xNzIgMS4zNS4zOTcgMi4wMDIuNjc3YTE0LjE0NyAxNC4xNDcgMCAwMTQuNDUgMy4wMDEgMTQuMTEyIDE0LjExMiAwIDAxMy42NzkgNi40NTMuNTAyLjUwMiAwIDAwLjk3NSAwYy4xNzItLjY4NS4zOTctMS4zNTEuNjc3LTIuMDAzYTE0LjE0NSAxNC4xNDUgMCAwMTMuMDAxLTQuNDUgMTQuMTEzIDE0LjExMyAwIDAxNi40NTMtMy42NzguNTAzLjUwMyAwIDAwMC0uOTc1IDEzLjI0NSAxMy4yNDUgMCAwMS0yLjAwMy0uNjc4eiIgZmlsbD0idXJsKCNsb2JlLWljb25zLWdlbWluaS0wLV9SXzBfKSI+PC9wYXRoPjxwYXRoIGQ9Ik0yMC42MTYgMTAuODM1YTE0LjE0NyAxNC4xNDcgMCAwMS00LjQ1LTMuMDAxIDE0LjExMSAxNC4xMTEgMCAwMS0zLjY3OC02LjQ1Mi41MDMuNTAzIDAgMDAtLjk3NSAwIDE0LjEzNCAxNC4xMzQgMCAwMS0zLjY3OSA2LjQ1MiAxNC4xNTUgMTQuMTU1IDAgMDEtNC40NSAzLjAwMWMtLjY1LjI4LTEuMzE4LjUwNS0yLjAwMi42NzhhLjUwMi41MDIgMCAwMDAgLjk3NWMuNjg0LjE3MiAxLjM1LjM5NyAyLjAwMi42NzdhMTQuMTQ3IDE0LjE0NyAwIDAxNC40NSAzLjAwMSAxNC4xMTIgMTQuMTEyIDAgMDEzLjY3OSA2LjQ1My41MDIuNTAyIDAgMDAuOTc1IDBjLjE3Mi0uNjg1LjM5Ny0xLjM1MS42NzctMi4wMDNhMTQuMTQ1IDE0LjE0NSAwIDAxMy4wMDEtNC40NSAxNC4xMTMgMTQuMTEzIDAgMDE2LjQ1My0zLjY3OC41MDMuNTAzIDAgMDAwLS45NzUgMTMuMjQ1IDEzLjI0NSAwIDAxLTIuMDAzLS42Nzh6IiBmaWxsPSJ1cmwoI2xvYmUtaWNvbnMtZ2VtaW5pLTEtX1JfMF8pIj48L3BhdGg+PHBhdGggZD0iTTIwLjYxNiAxMC44MzVhMTQuMTQ3IDE0LjE0NyAwIDAxLTQuNDUtMy4wMDEgMTQuMTExIDE0LjExMSAwIDAxLTMuNjc4LTYuNDUyLjUwMy41MDMgMCAwMC0uOTc1IDAgMTQuMTM0IDE0LjEzNCAwIDAxLTMuNjc5IDYuNDUyIDE0LjE1NSAxNC4xNTUgMCAwMS00LjQ1IDMuMDAxYy0uNjUuMjgtMS4zMTguNTA1LTIuMDAyLjY3OGEuNTAyLjUwMiAwIDAwMCAuOTc1Yy42ODQuMTcyIDEuMzUuMzk3IDIuMDAyLjY3N2ExNC4xNDcgMTQuMTQ3IDAgMDE0LjQ1IDMuMDAxIDE0LjExMiAxNC4xMTIgMCAwMTMuNjc5IDYuNDUzLjUwMi41MDIgMCAwMC45NzUgMGMuMTcyLS42ODUuMzk3LTEuMzUxLjY3Ny0yLjAwM2ExNC4xNDUgMTQuMTQ1IDAgMDEzLjAwMS00LjQ1IDE0LjExMyAxNC4xMTMgMCAwMTYuNDUzLTMuNjc4LjUwMy41MDMgMCAwMDAtLjk3NSAxMy4yNDUgMTMuMjQ1IDAgMDEtMi4wMDMtLjY3OHoiIGZpbGw9InVybCgjbG9iZS1pY29ucy1nZW1pbmktMi1fUl8wXykiPjwvcGF0aD48ZGVmcz48bGluZWFyR3JhZGllbnQgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJsb2JlLWljb25zLWdlbWluaS0wLV9SXzBfIiB4MT0iNyIgeDI9IjExIiB5MT0iMTUuNSIgeTI9IjEyIj48c3RvcCBzdG9wLWNvbG9yPSIjMDhCOTYyIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDhCOTYyIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImxvYmUtaWNvbnMtZ2VtaW5pLTEtX1JfMF8iIHgxPSI4IiB4Mj0iMTEuNSIgeTE9IjUuNSIgeTI9IjExIj48c3RvcCBzdG9wLWNvbG9yPSIjRjk0NTQzIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRjk0NTQzIiBzdG9wLW9wYWNpdHk9IjAiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImxvYmUtaWNvbnMtZ2VtaW5pLTItX1JfMF8iIHgxPSIzLjUiIHgyPSIxNy41IiB5MT0iMTMuNSIgeTI9IjEyIj48c3RvcCBzdG9wLWNvbG9yPSIjRkFCQzEyIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIuNDYiIHN0b3AtY29sb3I9IiNGQUJDMTIiIHN0b3Atb3BhY2l0eT0iMCI+PC9zdG9wPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==",
655
- url: "https://github.com/google-gemini/gemini-cli",
656
- tagline: "Google's open-source AI agent for the terminal",
657
- links: [{
658
- label: "Repo",
659
- href: "https://github.com/google-gemini/gemini-cli"
660
- }]
661
- },
662
- {
663
- category: "AI Agent",
664
- label: "Cursor",
665
- flag: "cursor",
666
- image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+cGF0aHtmaWxsOiMwMDB9QG1lZGlhKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe3BhdGh7ZmlsbDojZmZmfX08L3N0eWxlPjx0aXRsZT5DdXJzb3I8L3RpdGxlPjxwYXRoIGQ9Ik0xMS41MDMuMTMxIDEuODkxIDUuNjc4YS44NC44NCAwIDAgMC0uNDIuNzI2djExLjE4OGMwIC4zLjE2Mi41NzUuNDIuNzI0bDkuNjA5IDUuNTVhMSAxIDAgMCAwIC45OTggMGw5LjYxLTUuNTVhLjg0Ljg0IDAgMCAwIC40Mi0uNzI0VjYuNDA0YS44NC44NCAwIDAgMC0uNDItLjcyNkwxMi40OTcuMTMxYTEuMDEgMS4wMSAwIDAgMC0uOTk2IDBNMi42NTcgNi4zMzhoMTguNTVjLjI2MyAwIC40My4yODcuMjk3LjUxNUwxMi4yMyAyMi45MThjLS4wNjIuMTA3LS4yMjkuMDY0LS4yMjktLjA2VjEyLjMzNWEuNTkuNTkgMCAwIDAtLjI5NS0uNTFsLTkuMTEtNS4yNTdjLS4xMDktLjA2My0uMDY0LS4yMy4wNjEtLjIzIi8+PC9zdmc+",
667
- url: "https://cursor.com",
668
- tagline: "The AI code editor",
669
- links: [{
670
- label: "Skills docs",
671
- href: "https://cursor.com/docs/skills"
672
- }]
673
- },
674
- {
675
- category: "AI Agent",
676
- label: "Copilot",
677
- flag: "copilot",
678
- image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+cGF0aHtmaWxsOiMwMDB9QG1lZGlhKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe3BhdGh7ZmlsbDojZmZmfX08L3N0eWxlPjx0aXRsZT5HaXRIdWIgQ29waWxvdDwvdGl0bGU+PHBhdGggZD0iTTIzLjkyMiAxNi45OTdDMjMuMDYxIDE4LjQ5MiAxOC4wNjMgMjIuMDIgMTIgMjIuMDIgNS45MzcgMjIuMDIuOTM5IDE4LjQ5Mi4wNzggMTYuOTk3QS42NDEuNjQxIDAgMCAxIDAgMTYuNzQxdi0yLjg2OWEuODgzLjg4MyAwIDAgMSAuMDUzLS4yMmMuMzcyLS45MzUgMS4zNDctMi4yOTIgMi42MDUtMi42NTYuMTY3LS40MjkuNDE0LTEuMDU1LjY0NC0xLjUxN2ExMC4wOTggMTAuMDk4IDAgMCAxLS4wNTItMS4wODZjMC0xLjMzMS4yODItMi40OTkgMS4xMzItMy4zNjguMzk3LS40MDYuODktLjcxNyAxLjQ3NC0uOTUyQzcuMjU1IDIuOTM3IDkuMjQ4IDEuOTggMTEuOTc4IDEuOThjMi43MzEgMCA0Ljc2Ny45NTcgNi4xNjYgMi4wOTMuNTg0LjIzNSAxLjA3Ny41NDYgMS40NzQuOTUyLjg1Ljg2OSAxLjEzMiAyLjAzNyAxLjEzMiAzLjM2OCAwIC4zNjgtLjAxNC43MzMtLjA1MiAxLjA4Ni4yMy40NjIuNDc3IDEuMDg4LjY0NCAxLjUxNyAxLjI1OC4zNjQgMi4yMzMgMS43MjEgMi42MDUgMi42NTZhLjg0MS44NDEgMCAwIDEgLjA1My4yMnYyLjg2OWEuNjQxLjY0MSAwIDAgMS0uMDc4LjI1NlptLTExLjc1LTUuOTkyaC0uMzQ0YTQuMzU5IDQuMzU5IDAgMCAxLS4zNTUuNTA4Yy0uNzcuOTQ3LTEuOTE4IDEuNDkyLTMuNTA4IDEuNDkyLTEuNzI1IDAtMi45ODktLjM1OS0zLjc4Mi0xLjI1OWEyLjEzNyAyLjEzNyAwIDAgMS0uMDg1LS4xMDRMNCAxMS43NDZ2Ni41ODVjMS40MzUuNzc5IDQuNTE0IDIuMTc5IDggMi4xNzkgMy40ODYgMCA2LjU2NS0xLjQgOC0yLjE3OXYtNi41ODVsLS4wOTgtLjEwNHMtLjAzMy4wNDUtLjA4NS4xMDRjLS43OTMuOS0yLjA1NyAxLjI1OS0zLjc4MiAxLjI1OS0xLjU5IDAtMi43MzgtLjU0NS0zLjUwOC0xLjQ5MmE0LjM1OSA0LjM1OSAwIDAgMS0uMzU1LS41MDhabTIuMzI4IDMuMjVjLjU0OSAwIDEgLjQ1MSAxIDF2MmMwIC41NDktLjQ1MSAxLTEgMS0uNTQ5IDAtMS0uNDUxLTEtMXYtMmMwLS41NDkuNDUxLTEgMS0xWm0tNSAwYy41NDkgMCAxIC40NTEgMSAxdjJjMCAuNTQ5LS40NTEgMS0xIDEtLjU0OSAwLTEtLjQ1MS0xLTF2LTJjMC0uNTQ5LjQ1MS0xIDEtMVptMy4zMTMtNi4xODVjLjEzNiAxLjA1Ny40MDMgMS45MTMuODc4IDIuNDk3LjQ0Mi41NDQgMS4xMzQuOTM4IDIuMzQ0LjkzOCAxLjU3MyAwIDIuMjkyLS4zMzcgMi42NTctLjc1MS4zODQtLjQzNS41NTgtMS4xNS41NTgtMi4zNjEgMC0xLjE0LS4yNDMtMS44NDctLjcwNS0yLjMxOS0uNDc3LS40ODgtMS4zMTktLjg2Mi0yLjgyNC0xLjAyNS0xLjQ4Ny0uMTYxLTIuMTkyLjEzOC0yLjUzMy41MjktLjI2OS4zMDctLjQzNy44MDgtLjQzOCAxLjU3OHYuMDIxYzAgLjI2NS4wMjEuNTYyLjA2My44OTNabS0xLjYyNiAwYy4wNDItLjMzMS4wNjMtLjYyOC4wNjMtLjg5NHYtLjAyYy0uMDAxLS43Ny0uMTY5LTEuMjcxLS40MzgtMS41NzgtLjM0MS0uMzkxLTEuMDQ2LS42OS0yLjUzMy0uNTI5LTEuNTA1LjE2My0yLjM0Ny41MzctMi44MjQgMS4wMjUtLjQ2Mi40NzItLjcwNSAxLjE3OS0uNzA1IDIuMzE5IDAgMS4yMTEuMTc1IDEuOTI2LjU1OCAyLjM2MS4zNjUuNDE0IDEuMDg0Ljc1MSAyLjY1Ny43NTEgMS4yMSAwIDEuOTAyLS4zOTQgMi4zNDQtLjkzOC40NzUtLjU4NC43NDItMS40NC44NzgtMi40OTdaIi8+PC9zdmc+",
679
- url: "https://github.com/features/copilot",
680
- tagline: "AI pair programmer",
681
- links: [{
682
- label: "Agent skills",
683
- href: "https://docs.github.com/en/copilot/concepts/agents/about-agent-skills"
684
- }]
706
+ label: "Agent Skills",
707
+ flag: "skills",
708
+ readonly: true,
709
+ invisibleCli: true,
710
+ invisibleWeb: true
685
711
  }
686
712
  ];
687
713
  features.map((f) => f.flag);