[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71EC224FPJJ4M01XR3HSKER":3,"skill-same:01M71EC224FPJJ4M01XR3HSKER":78},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M71EC224FPJJ4M01XR3HSKER","apollo-connectors",null,"Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors with @source and @connect directives. Use this skill when the user: (1) mentions \"connectors\", \"Apollo Connectors\", or \"REST Connector\", (2) wants to integrate a REST API into GraphQL, (3) references @source or @connect directives, (4) works with files containing \"# Note to AI Friends: This is an Apollo Connectors schema\".","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\u002F.ai\u002Fskills\u002Fofficial_apollographql_apollo_connectors\u002Fskill.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"apollo","connectors","apollo connectors","guide","coding","source","integrate","edit","write","read","cli","references","Connector","api","code","Bash","when","connect","files","directives","2026-11-10 10:12:30",false,"---\nname: apollo-connectors\ndescription: >\n  Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors\n  with @source and @connect directives. Use this skill when the user:\n  (1) mentions \"connectors\", \"Apollo Connectors\", or \"REST Connector\",\n  (2) wants to integrate a REST API into GraphQL,\n  (3) references @source or @connect directives,\n  (4) works with files containing \"# Note to AI Friends: This is an Apollo Connectors schema\".\nlicense: MIT\ncompatibility: Requires rover CLI installed. Works with Claude Code and similar AI coding assistants.\nmetadata:\n  author: apollographql\n  version: \"1.0.0\"\nallowed-tools: Bash(rover:*) Read Write Edit Glob Grep\n---\n\n# Apollo Connectors Schema Assistant\n\n## MCP Tools\n\nIf GraphOS MCP Tools are available, use them:\n- **connectors-spec**: Fetch the complete Connectors specification before starting any connector work\n- **apollo_docs_search**: Search for relevant documentation\n- **apollo_docs_read**: Read specific documentation pages by slug\n\n**Documentation paths by topic:**\n- Requests: `\u002Fgraphos\u002Fconnectors\u002Frequests\u002Furl`, `\u002Fheaders`, `\u002Fbody`, `\u002Fbatching`\n- Responses: `\u002Fgraphos\u002Fconnectors\u002Fresponses\u002Ffields`, `\u002Ferror-handling`\n- Mapping: `\u002Fgraphos\u002Fconnectors\u002Fmapping`, `\u002Farrays`, `\u002Fenums`, `\u002Fliterals`\n- Entities: `\u002Fgraphos\u002Fconnectors\u002Fentities`, `\u002Fpatterns`\n\n## Process\n\nFollow this 5-step process. **DO NOT skip any steps.**\n\n### Step 1: Research\n\n- [ ] Understand the API being called and the structure of responses\n- [ ] Ask the user for example API responses if not provided\n- [ ] Fetch relevant documentation from MCP tools or reference files\n- [ ] DO NOT write any code until research is complete\n\n### Step 2: Implement\n\n- [ ] Create the schema using the template below\n- [ ] Follow the grammar, methods, and variables in the reference files\n- [ ] Ask clarifying questions if unsure about requirements\n\n### Step 3: Validate (Compose)\n\n- [ ] Run `rover supergraph compose --config .\u002Fsupergraph.yaml`\n- [ ] Fix any composition errors before proceeding\n\n### Step 4: Execute\n\n- [ ] Run `rover connector run --schema \u003Cfile> -c \"\u003CType.field>\" -v \"{}\"`\n- [ ] Verify the connector executes correctly\n\n### Step 5: Test\n\n- [ ] Create or update test files under `\u002Ftests\u002F`\n- [ ] Run `rover connector test`\n- [ ] Ensure full test coverage for each connector\n\n## Schema Template\n\n```graphql\n# Note to AI Friends: This is an Apollo Connectors schema. You should use your connectors-spec MCP tool if you have it available before editing this file.\n\nextend schema\n  @link(url: \"https:\u002F\u002Fspecs.apollo.dev\u002Ffederation\u002Fv2.12\")\n  @link(url: \"https:\u002F\u002Fspecs.apollo.dev\u002Fconnect\u002Fv0.3\", import: [\"@source\", \"@connect\"])\n\n@source(name: \"api_name\", http: { baseURL: \"https:\u002F\u002Fapi.example.com\" })\n\ntype Query {\n  example(id: ID!): Example\n    @connect(\n      source: \"api_name\"\n      http: { GET: \"\u002Fexample\u002F{$args.id}\" }\n      selection: \"\"\"\n      id\n      name\n      \"\"\"\n    )\n}\n\ntype Example {\n  id: ID!\n  name: String\n}\n```\n\n**Version Requirements:** Always use `federation\u002Fv2.12` and `connect\u002Fv0.3` unless specified otherwise.\n\n## Reference Files\n\nBefore implementing connectors, read the relevant reference files:\n\n- Grammar (`references\u002Fgrammar.md`) - Selection mapping EBNF syntax\n- Methods (`references\u002Fmethods.md`) - Available transformation methods\n- Variables (`references\u002Fvariables.md`) - Available mapping variables\n- Entities (`references\u002Fentities.md`) - Entity patterns and batching\n- Validation (`references\u002Fvalidation.md`) - Rover commands for validation\n- Troubleshooting (`references\u002Ftroubleshooting.md`) - Common errors and solutions\n\n## Key Rules\n\n### Selection Mapping\n\n- Prefer sub-selections over `->map` for cleaner mappings\n- Do NOT use `$` when selecting fields directly from root\n- Field aliasing: `newName: originalField` (only when renaming)\n- Sub-selection: `fieldName { ... }` (to map nested content)\n\n```\n# DO - Direct sub-selection for arrays\n$.results {\n  firstName: name.first\n  lastName: name.last\n}\n\n# DO NOT - Unnecessary root $\n$ {\n  id\n  name\n}\n\n# DO - Direct field selection\nid\nname\n```\n\n### Entities\n\n- Add `@connect` on a type to make it an entity (no `@key` needed)\n- Create entity stubs in parent selections: `user: { id: userId }`\n- When you see an ID field (e.g., `productId`), create an entity relationship\n- Each entity should have ONE authoritative subgraph with `@connect`\n\n### Literal Values\n\nUse `$()` wrapper for literal values in mappings:\n\n```\n$(1)              # number\n$(true)           # boolean\n$(\"hello\")        # string\n$({\"a\": \"b\"})     # object\n\n# In body\nbody: \"$({ a: $args.a })\"  # CORRECT\nbody: \"{ a: $args.a }\"     # WRONG - will not compose\n```\n\n### Headers\n\n```graphql\nhttp: {\n  GET: \"\u002Fapi\"\n  headers: [\n    { name: \"Authorization\", value: \"Bearer {$env.API_KEY}\" },\n    { name: \"X-Forwarded\", from: \"x-client\" }\n  ]\n}\n```\n\n### Batching\n\nConvert N+1 patterns using `$batch`:\n\n```graphql\ntype Product @connect(\n  source: \"api\"\n  http: {\n    POST: \"\u002Fbatch\"\n    body: \"ids: $batch.id\"\n  }\n  selection: \"id name\"\n) {\n  id: ID!\n  name: String\n}\n```\n\n## Ground Rules\n\n- NEVER make up syntax or directive values not in this specification\n- NEVER use `--elv2-license accept` (for humans only)\n- ALWAYS ask for example API responses before writing code\n- ALWAYS validate with `rover supergraph compose` after changes\n- ALWAYS create entity relationships when you see ID fields\n- Prefer `$env` over `$config` for environment variables\n- Use `rover dev` for running Apollo Router locally\n","# Apollo Connectors Schema Assistant\n\n## MCP Tools\n\nIf GraphOS MCP Tools are available, use them:\n- **connectors-spec**: Fetch the complete Connectors specification before starting any connector work\n- **apollo_docs_search**: Search for relevant documentation\n- **apollo_docs_read**: Read specific documentation pages by slug\n\n**Documentation paths by topic:**\n- Requests: `\u002Fgraphos\u002Fconnectors\u002Frequests\u002Furl`, `\u002Fheaders`, `\u002Fbody`, `\u002Fbatching`\n- Responses: `\u002Fgraphos\u002Fconnectors\u002Fresponses\u002Ffields`, `\u002Ferror-handling`\n- Mapping: `\u002Fgraphos\u002Fconnectors\u002Fmapping`, `\u002Farrays`, `\u002Fenums`, `\u002Fliterals`\n- Entities: `\u002Fgraphos\u002Fconnectors\u002Fentities`, `\u002Fpatterns`\n\n## Process\n\nFollow this 5-step process. **DO NOT skip any steps.**\n\n### Step 1: Research\n\n- [ ] Understand the API being called and the structure of responses\n- [ ] Ask the user for example API responses if not provided\n- [ ] Fetch relevant documentation from MCP tools or reference files\n- [ ] DO NOT write any code until research is complete\n\n### Step 2: Implement\n\n- [ ] Create the schema using the template below\n- [ ] Follow the grammar, methods, and variables in the reference files\n- [ ] Ask clarifying questions if unsure about requirements\n\n### Step 3: Validate (Compose)\n\n- [ ] Run `rover supergraph compose --config .\u002Fsupergraph.yaml`\n- [ ] Fix any composition errors before proceeding\n\n### Step 4: Execute\n\n- [ ] Run `rover connector run --schema \u003Cfile> -c \"\u003CType.field>\" -v \"{}\"`\n- [ ] Verify the connector executes correctly\n\n### Step 5: Test\n\n- [ ] Create or update test files under `\u002Ftests\u002F`\n- [ ] Run `rover connector test`\n- [ ] Ensure full test coverage for each connector\n\n## Schema Template\n\n```graphql\n# Note to AI Friends: This is an Apollo Connectors schema. You should use your connectors-spec MCP tool if you have it available before editing this file.\n\nextend schema\n  @link(url: \"https:\u002F\u002Fspecs.apollo.dev\u002Ffederation\u002Fv2.12\")\n  @link(url: \"https:\u002F\u002Fspecs.apollo.dev\u002Fconnect\u002Fv0.3\", import: [\"@source\", \"@connect\"])\n\n@source(name: \"api_name\", http: { baseURL: \"https:\u002F\u002Fapi.example.com\" })\n\ntype Query {\n  example(id: ID!): Example\n    @connect(\n      source: \"api_name\"\n      http: { GET: \"\u002Fexample\u002F{$args.id}\" }\n      selection: \"\"\"\n      id\n      name\n      \"\"\"\n    )\n}\n\ntype Example {\n  id: ID!\n  name: String\n}\n```\n\n**Version Requirements:** Always use `federation\u002Fv2.12` and `connect\u002Fv0.3` unless specified otherwise.\n\n## Reference Files\n\nBefore implementing connectors, read the relevant reference files:\n\n- Grammar (`references\u002Fgrammar.md`) - Selection mapping EBNF syntax\n- Methods (`references\u002Fmethods.md`) - Available transformation methods\n- Variables (`references\u002Fvariables.md`) - Available mapping variables\n- Entities (`references\u002Fentities.md`) - Entity patterns and batching\n- Validation (`references\u002Fvalidation.md`) - Rover commands for validation\n- Troubleshooting (`references\u002Ftroubleshooting.md`) - Common errors and solutions\n\n## Key Rules\n\n### Selection Mapping\n\n- Prefer sub-selections over `->map` for cleaner mappings\n- Do NOT use `$` when selecting fields directly from root\n- Field aliasing: `newName: originalField` (only when renaming)\n- Sub-selection: `fieldName { ... }` (to map nested content)\n\n```\n# DO - Direct sub-selection for arrays\n$.results {\n  firstName: name.first\n  lastName: name.last\n}\n\n# DO NOT - Unnecessary root $\n$ {\n  id\n  name\n}\n\n# DO - Direct field selection\nid\nname\n```\n\n### Entities\n\n- Add `@connect` on a type to make it an entity (no `@key` needed)\n- Create entity stubs in parent selections: `user: { id: userId }`\n- When you see an ID field (e.g., `productId`), create an entity relationship\n- Each entity should have ONE authoritative subgraph with `@connect`\n\n### Literal Values\n\nUse `$()` wrapper for literal values in mappings:\n\n```\n$(1)              # number\n$(true)           # boolean\n$(\"hello\")        # string\n$({\"a\": \"b\"})     # object\n\n# In body\nbody: \"$({ a: $args.a })\"  # CORRECT\nbody: \"{ a: $args.a }\"     # WRONG - will not compose\n```\n\n### Headers\n\n```graphql\nhttp: {\n  GET: \"\u002Fapi\"\n  headers: [\n    { name: \"Authorization\", value: \"Bearer {$env.API_KEY}\" },\n    { name: \"X-Forwarded\", from: \"x-client\" }\n  ]\n}\n```\n\n### Batching\n\nConvert N+1 patterns using `$batch`:\n\n```graphql\ntype Product @connect(\n  source: \"api\"\n  http: {\n    POST: \"\u002Fbatch\"\n    body: \"ids: $batch.id\"\n  }\n  selection: \"id name\"\n) {\n  id: ID!\n  name: String\n}\n```\n\n## Ground Rules\n\n- NEVER make up syntax or directive values not in this specification\n- NEVER use `--elv2-license accept` (for humans only)\n- ALWAYS ask for example API responses before writing code\n- ALWAYS validate with `rover supergraph compose` after changes\n- ALWAYS create entity relationships when you see ID fields\n- Prefer `$env` over `$config` for environment variables\n- Use `rover dev` for running Apollo Router locally\n",{"name":5,"license":15,"metadata":49,"description":52,"allowed-tools":53,"compatibility":54},{"author":50,"version":51},"apollographql","1.0.0","Guide for integrating REST APIs into GraphQL supergraphs using Apollo Connectors with @source and @connect directives. Use this skill when the user: (1) mentions \"connectors\", \"Apollo Connectors\", or \"REST Connector\", (2) wants to integrate a REST API into GraphQL, (3) references @source or @connect directives, (4) works with files containing \"# Note to AI Friends: This is an Apollo Connectors schema\".\n","Bash(rover:*) Read Write Edit Glob Grep","Requires rover CLI installed. Works with Claude Code and similar AI coding assistants.","master","c2e410e11df4d80d885e0ecf0583ef3c926df736",".ai\u002Fskills\u002Fofficial_apollographql_apollo_connectors",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":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add iDorgham\u002FWorkspace-Factory --skill apollo-connectors",{"tool":70,"command":71},"bunx","bunx skills add iDorgham\u002FWorkspace-Factory --skill apollo-connectors",{"tool":73,"command":74},"pnpm","pnpm dlx skills add iDorgham\u002FWorkspace-Factory --skill apollo-connectors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002F.ai\u002Fskills\u002Fofficial_apollographql_apollo_connectors\u002Fskill.md",true,[],[79,108,131,152,172,195],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"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",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[89,90,91,92,93,94,95,96,97,98,99,100,101,102,40,103,37,104,105,106],"react","vercel react view transitions","view","react view transitions","vercel","transitions","shared","back","Animation","css","types","states","element","implementing","components","route","create","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":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[89,116,117,93,118,119,120,121,102,122,40,123,103,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":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[89,139,140,93,141,121,142,40,38,123,103,143,144,145,146,147,148,149,150,151],"react best practices","vercel react best practices","best practices","writing","data fetching","react components","next","refactoring","data","patterns","Optimization","guidelines","triggers",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"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",[158],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[160,93,161,148,162,163,164,165,151,166,167,168,40,169,123,103,170,171,37,89],"Composition","composition patterns","vercel composition patterns","react composition patterns","react 19","render","boolean","component architecture","use","reusable","architecture","react composition",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":181,"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",[178],{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[182,183,184,185,141,186,187,188,130,149,121,189,190,142,191,168,192,193,194,40],"postgres best practices","supabase","postgres","supabase postgres best practices","categories","postgres performance","advanced","correct","schema","impact","Rules","critical","database",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":202,"publishedAt":218},"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",[201],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[203,204,205,206,207,99,208,165,209,102,210,211,40,89,212,213,214,215,216,217],"text","portable text serialization","portable","serialization","extracting","strings","issues","frontend","svelte","sanity","astro","server","markdown","rendering","vue","2026-11-10 10:56:23"]