[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NZSWNTG114R18ZG09Z9KD":3,"skill-same:01M71NZSWNTG114R18ZG09Z9KD":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M71NZSWNTG114R18ZG09Z9KD","prisma-client-api",null,"Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on \"prisma query\", \"findMany\", \"create\", \"update\", \"delete\", \"$transaction\".","iDorgham\u002FWorkspace-Factory","iDorgham","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F136521493?v=4","01M6CNGBDAHE4ARW3YJEF4X2FD","Dorgham","01M71E8H3CXZ7DJX59MTM9JEB2",1,"MIT","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_prisma_prisma_client_api\u002Fskill.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"client","prisma client api","api","prisma","queries","when","database queries","triggers","transaction","query","methods","writing","filters","use","filtering","model","crud","database","delete","create","2026-11-10 10:56:23",false,"---\nname: prisma-client-api\ndescription: Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on \"prisma query\", \"findMany\", \"create\", \"update\", \"delete\", \"$transaction\".\nlicense: MIT\nmetadata:\n  author: prisma\n  version: \"7.6.0\"\n---\n\n# Prisma Client API Reference\n\nComplete API reference for Prisma Client. This skill provides guidance on model queries, filtering, relations, and client methods for current Prisma projects.\n\n## When to Apply\n\nReference this skill when:\n- Writing database queries with Prisma Client\n- Performing CRUD operations (create, read, update, delete)\n- Filtering and sorting data\n- Working with relations\n- Using transactions\n- Configuring client options\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Client Construction | HIGH | `constructor` |\n| 2 | Model Queries | CRITICAL | `model-queries` |\n| 3 | Query Shape | HIGH | `query-options` |\n| 4 | Filtering | HIGH | `filters` |\n| 5 | Relations | HIGH | `relations` |\n| 6 | Transactions | CRITICAL | `transactions` |\n| 7 | Raw SQL | CRITICAL | `raw-queries` |\n| 8 | Client Methods | MEDIUM | `client-methods` |\n\n## Quick Reference\n\n- `constructor` - `PrismaClient` setup, adapter wiring, logging, and SQL commenter plugins\n- `model-queries` - CRUD operations and bulk operations\n- `query-options` - `select`, `include`, `omit`, sort, pagination\n- `filters` - scalar and logical filter operators\n- `relations` - relation reads and nested writes\n- `transactions` - array and interactive transaction patterns\n- `raw-queries` - `$queryRaw` and `$executeRaw` safety\n- `client-methods` - lifecycle methods, extensions, and `satisfies` patterns for `prisma-client`\n\n## Client Instantiation\n\n```typescript\nimport { PrismaClient } from '..\u002Fgenerated\u002Fclient'\nimport { PrismaPg } from '@prisma\u002Fadapter-pg'\n\nconst adapter = new PrismaPg({\n  connectionString: process.env.DATABASE_URL\n})\n\nconst prisma = new PrismaClient({ adapter })\n```\n\n## Model Query Methods\n\n| Method | Description |\n|--------|-------------|\n| `findUnique()` | Find one record by unique field |\n| `findUniqueOrThrow()` | Find one or throw error |\n| `findFirst()` | Find first matching record |\n| `findFirstOrThrow()` | Find first or throw error |\n| `findMany()` | Find multiple records |\n| `create()` | Create a new record |\n| `createMany()` | Create multiple records |\n| `createManyAndReturn()` | Create multiple and return them |\n| `update()` | Update one record |\n| `updateMany()` | Update multiple records |\n| `updateManyAndReturn()` | Update multiple and return them |\n| `upsert()` | Update or create record |\n| `delete()` | Delete one record |\n| `deleteMany()` | Delete multiple records |\n| `count()` | Count matching records |\n| `aggregate()` | Aggregate values (sum, avg, etc.) |\n| `groupBy()` | Group and aggregate |\n\n## Query Options\n\n| Option | Description |\n|--------|-------------|\n| `where` | Filter conditions |\n| `select` | Fields to include |\n| `include` | Relations to load |\n| `omit` | Fields to exclude |\n| `orderBy` | Sort order |\n| `take` | Limit results |\n| `skip` | Skip results (pagination) |\n| `cursor` | Cursor-based pagination |\n| `distinct` | Unique values only |\n\n## Client Methods\n\n| Method | Description |\n|--------|-------------|\n| `$connect()` | Explicitly connect to database |\n| `$disconnect()` | Disconnect from database |\n| `$transaction()` | Execute transaction |\n| `$queryRaw()` | Execute raw SQL query |\n| `$executeRaw()` | Execute raw SQL command |\n| `$on()` | Subscribe to events |\n| `$extends()` | Add extensions |\n\n## Quick Examples\n\n### Find records\n\n```typescript\n\u002F\u002F Find by unique field\nconst user = await prisma.user.findUnique({\n  where: { email: 'alice@prisma.io' }\n})\n\n\u002F\u002F Find with filter\nconst users = await prisma.user.findMany({\n  where: { role: 'ADMIN' },\n  orderBy: { createdAt: 'desc' },\n  take: 10\n})\n```\n\n### Create records\n\n```typescript\nconst user = await prisma.user.create({\n  data: {\n    email: 'alice@prisma.io',\n    name: 'Alice',\n    posts: {\n      create: { title: 'Hello World' }\n    }\n  },\n  include: { posts: true }\n})\n```\n\n### Update records\n\n```typescript\nconst user = await prisma.user.update({\n  where: { id: 1 },\n  data: { name: 'Alice Smith' }\n})\n```\n\n### Delete records\n\n```typescript\nawait prisma.user.delete({\n  where: { id: 1 }\n})\n```\n\n### Transactions\n\n```typescript\nconst [user, post] = await prisma.$transaction([\n  prisma.user.create({ data: { email: 'alice@prisma.io' } }),\n  prisma.post.create({ data: { title: 'Hello', authorId: 1 } })\n])\n```\n\n## Rule Files\n\nDetailed API documentation:\n\n```\nreferences\u002Fconstructor.md        - PrismaClient constructor options\nreferences\u002Fmodel_queries.md      - CRUD operations\nreferences\u002Fquery_options.md      - select, include, omit, where, orderBy\nreferences\u002Ffilters.md            - Filter conditions and operators\nreferences\u002Frelations.md          - Relation queries and nested operations\nreferences\u002Ftransactions.md       - Transaction API\nreferences\u002Fraw_queries.md        - $queryRaw, $executeRaw\nreferences\u002Fclient_methods.md     - $connect, $disconnect, $on, $extends\n```\n\n## Filter Operators\n\n| Operator | Description |\n|----------|-------------|\n| `equals` | Exact match |\n| `not` | Not equal |\n| `in` | In array |\n| `notIn` | Not in array |\n| `lt`, `lte` | Less than |\n| `gt`, `gte` | Greater than |\n| `contains` | String contains |\n| `startsWith` | String starts with |\n| `endsWith` | String ends with |\n| `mode` | Case sensitivity |\n\n## Relation Filters\n\n| Operator | Description |\n|----------|-------------|\n| `some` | At least one related record matches |\n| `every` | All related records match |\n| `none` | No related records match |\n| `is` | Related record matches (1-to-1) |\n| `isNot` | Related record doesn't match |\n\n## Resources\n\n- [Prisma Client API Reference](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Freference\u002Fprisma-client-reference)\n- [CRUD Operations](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Fprisma-client\u002Fqueries\u002Fcrud)\n- [Filtering and Sorting](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Fprisma-client\u002Fqueries\u002Ffiltering-and-sorting)\n\n## How to Use\n\nPick the category from the table above, then open the matching reference file for implementation details and examples.\n","# Prisma Client API Reference\n\nComplete API reference for Prisma Client. This skill provides guidance on model queries, filtering, relations, and client methods for current Prisma projects.\n\n## When to Apply\n\nReference this skill when:\n- Writing database queries with Prisma Client\n- Performing CRUD operations (create, read, update, delete)\n- Filtering and sorting data\n- Working with relations\n- Using transactions\n- Configuring client options\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Client Construction | HIGH | `constructor` |\n| 2 | Model Queries | CRITICAL | `model-queries` |\n| 3 | Query Shape | HIGH | `query-options` |\n| 4 | Filtering | HIGH | `filters` |\n| 5 | Relations | HIGH | `relations` |\n| 6 | Transactions | CRITICAL | `transactions` |\n| 7 | Raw SQL | CRITICAL | `raw-queries` |\n| 8 | Client Methods | MEDIUM | `client-methods` |\n\n## Quick Reference\n\n- `constructor` - `PrismaClient` setup, adapter wiring, logging, and SQL commenter plugins\n- `model-queries` - CRUD operations and bulk operations\n- `query-options` - `select`, `include`, `omit`, sort, pagination\n- `filters` - scalar and logical filter operators\n- `relations` - relation reads and nested writes\n- `transactions` - array and interactive transaction patterns\n- `raw-queries` - `$queryRaw` and `$executeRaw` safety\n- `client-methods` - lifecycle methods, extensions, and `satisfies` patterns for `prisma-client`\n\n## Client Instantiation\n\n```typescript\nimport { PrismaClient } from '..\u002Fgenerated\u002Fclient'\nimport { PrismaPg } from '@prisma\u002Fadapter-pg'\n\nconst adapter = new PrismaPg({\n  connectionString: process.env.DATABASE_URL\n})\n\nconst prisma = new PrismaClient({ adapter })\n```\n\n## Model Query Methods\n\n| Method | Description |\n|--------|-------------|\n| `findUnique()` | Find one record by unique field |\n| `findUniqueOrThrow()` | Find one or throw error |\n| `findFirst()` | Find first matching record |\n| `findFirstOrThrow()` | Find first or throw error |\n| `findMany()` | Find multiple records |\n| `create()` | Create a new record |\n| `createMany()` | Create multiple records |\n| `createManyAndReturn()` | Create multiple and return them |\n| `update()` | Update one record |\n| `updateMany()` | Update multiple records |\n| `updateManyAndReturn()` | Update multiple and return them |\n| `upsert()` | Update or create record |\n| `delete()` | Delete one record |\n| `deleteMany()` | Delete multiple records |\n| `count()` | Count matching records |\n| `aggregate()` | Aggregate values (sum, avg, etc.) |\n| `groupBy()` | Group and aggregate |\n\n## Query Options\n\n| Option | Description |\n|--------|-------------|\n| `where` | Filter conditions |\n| `select` | Fields to include |\n| `include` | Relations to load |\n| `omit` | Fields to exclude |\n| `orderBy` | Sort order |\n| `take` | Limit results |\n| `skip` | Skip results (pagination) |\n| `cursor` | Cursor-based pagination |\n| `distinct` | Unique values only |\n\n## Client Methods\n\n| Method | Description |\n|--------|-------------|\n| `$connect()` | Explicitly connect to database |\n| `$disconnect()` | Disconnect from database |\n| `$transaction()` | Execute transaction |\n| `$queryRaw()` | Execute raw SQL query |\n| `$executeRaw()` | Execute raw SQL command |\n| `$on()` | Subscribe to events |\n| `$extends()` | Add extensions |\n\n## Quick Examples\n\n### Find records\n\n```typescript\n\u002F\u002F Find by unique field\nconst user = await prisma.user.findUnique({\n  where: { email: 'alice@prisma.io' }\n})\n\n\u002F\u002F Find with filter\nconst users = await prisma.user.findMany({\n  where: { role: 'ADMIN' },\n  orderBy: { createdAt: 'desc' },\n  take: 10\n})\n```\n\n### Create records\n\n```typescript\nconst user = await prisma.user.create({\n  data: {\n    email: 'alice@prisma.io',\n    name: 'Alice',\n    posts: {\n      create: { title: 'Hello World' }\n    }\n  },\n  include: { posts: true }\n})\n```\n\n### Update records\n\n```typescript\nconst user = await prisma.user.update({\n  where: { id: 1 },\n  data: { name: 'Alice Smith' }\n})\n```\n\n### Delete records\n\n```typescript\nawait prisma.user.delete({\n  where: { id: 1 }\n})\n```\n\n### Transactions\n\n```typescript\nconst [user, post] = await prisma.$transaction([\n  prisma.user.create({ data: { email: 'alice@prisma.io' } }),\n  prisma.post.create({ data: { title: 'Hello', authorId: 1 } })\n])\n```\n\n## Rule Files\n\nDetailed API documentation:\n\n```\nreferences\u002Fconstructor.md        - PrismaClient constructor options\nreferences\u002Fmodel_queries.md      - CRUD operations\nreferences\u002Fquery_options.md      - select, include, omit, where, orderBy\nreferences\u002Ffilters.md            - Filter conditions and operators\nreferences\u002Frelations.md          - Relation queries and nested operations\nreferences\u002Ftransactions.md       - Transaction API\nreferences\u002Fraw_queries.md        - $queryRaw, $executeRaw\nreferences\u002Fclient_methods.md     - $connect, $disconnect, $on, $extends\n```\n\n## Filter Operators\n\n| Operator | Description |\n|----------|-------------|\n| `equals` | Exact match |\n| `not` | Not equal |\n| `in` | In array |\n| `notIn` | Not in array |\n| `lt`, `lte` | Less than |\n| `gt`, `gte` | Greater than |\n| `contains` | String contains |\n| `startsWith` | String starts with |\n| `endsWith` | String ends with |\n| `mode` | Case sensitivity |\n\n## Relation Filters\n\n| Operator | Description |\n|----------|-------------|\n| `some` | At least one related record matches |\n| `every` | All related records match |\n| `none` | No related records match |\n| `is` | Related record matches (1-to-1) |\n| `isNot` | Related record doesn't match |\n\n## Resources\n\n- [Prisma Client API Reference](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Freference\u002Fprisma-client-reference)\n- [CRUD Operations](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Fprisma-client\u002Fqueries\u002Fcrud)\n- [Filtering and Sorting](https:\u002F\u002Fwww.prisma.io\u002Fdocs\u002Form\u002Fprisma-client\u002Fqueries\u002Ffiltering-and-sorting)\n\n## How to Use\n\nPick the category from the table above, then open the matching reference file for implementation details and examples.\n",{"name":5,"license":15,"metadata":54,"description":7},{"author":32,"version":55},"7.6.0","master","c2e410e11df4d80d885e0ecf0583ef3c926df736","factory\u002Flibrary\u002Fskills\u002Fofficial_prisma_prisma_client_api",0,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory","https:\u002F\u002Fgithub.com\u002FiDorgham","Dorgham.me","hey I'm Dorgham \r\nI code, I create, and AI codes back. \r\nMaybe we can give AI the chance!! now we begin. 🚀🤖\r\n... . . . git commit -m \"Hello, Future\" ","2026-05-04 18:39:09",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add iDorgham\u002FWorkspace-Factory --skill prisma-client-api",{"tool":71,"command":72},"bunx","bunx skills add iDorgham\u002FWorkspace-Factory --skill prisma-client-api",{"tool":74,"command":75},"pnpm","pnpm dlx skills add iDorgham\u002FWorkspace-Factory --skill prisma-client-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_prisma_prisma_client_api\u002Fskill.md",true,[],[80,108,131,151,170,190],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":89,"publishedAt":107},"01M71P8WVBMB2X3D24R0YT0B0E","vercel-react-view-transitions","Guide for implementing smooth, native-feeling animations using React's View Transition API (`\u003CViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter\u002Fexit of components, animate list reorder, implement directional (forward\u002Fback) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_view_transitions\u002Fskill.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[90,91,92,93,94,95,96,97,98,99,100,101,102,103,34,104,31,105,48,106],"react","vercel react view transitions","view","react view transitions","vercel","transitions","shared","back","Animation","css","types","states","element","implementing","components","route","libraries","2026-11-10 13:02:02",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"publishedAt":107},"01M71P8TDGHZ289TSAC5VTG2EW","vercel-react-native-skills","React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_native_skills\u002Fskill.md",[114],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[90,116,117,94,118,119,120,121,103,122,34,123,104,124,125,126,127,128,129,130],"react native","native","vercel react native skills","react native skills","modules","performance","apps","tasks","mobile","expo","list","mobile performance","platform","animations","for",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":107},"01M71P8QK4JF5BYRGYDDGPZQG9","vercel-react-best-practices","React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React\u002FNext.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_best_practices\u002Fskill.md",[137],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[90,139,140,94,141,121,40,34,142,123,104,143,144,145,146,147,148,149,150,36],"react best practices","vercel react best practices","best practices","code","data fetching","react components","next","refactoring","data","patterns","Optimization","guidelines",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":107},"01M71P8HVEA70K5N6ZVJCG2ED3","vercel-composition-patterns","React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_composition_patterns\u002Fskill.md",[157],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[159,94,160,148,161,162,163,164,36,165,166,42,34,167,123,104,168,169,31,90],"Composition","composition patterns","vercel composition patterns","react composition patterns","react 19","render","boolean","component architecture","reusable","architecture","react composition",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":107},"01M71P60XXKKP222ZFJRG7R373","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_supabase_supabase_postgres_best_practices\u002Fskill.md",[176],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[178,179,180,181,141,182,183,184,130,149,121,185,186,40,187,42,188,189,46,34],"postgres best practices","supabase","postgres","supabase postgres best practices","categories","postgres performance","advanced","correct","schema","impact","Rules","critical",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":197,"publishedAt":49},"01M71P2ZCEJD0PKC458YTP1FJW","portable-text-serialization","Render and serialize Portable Text to React, Svelte, Vue, Astro, HTML, Markdown, and plain text. Use when implementing Portable Text rendering in any frontend framework, building custom serializers for non-standard block types, converting Portable Text to HTML strings server-side, converting Portable Text to Markdown, extracting plain text from Portable Text, or troubleshooting rendering issues with marks, blocks, lists, or custom types.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_sanity_io_portable_text_serialization\u002Fskill.md",[196],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},[198,199,200,201,202,100,203,164,204,103,205,206,34,90,207,208,209,210,211,212],"text","portable text serialization","portable","serialization","extracting","strings","issues","frontend","svelte","sanity","astro","server","markdown","rendering","vue"]