[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7D345TDKDWVXRAMHA8BASXC":3,"skill-same:01M7D345TDKDWVXRAMHA8BASXC":50},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M7D345TDKDWVXRAMHA8BASXC","create-call",null,"Create outbound phone calls, web calls, and batch calls using the Vapi API. Use when making automated calls, testing voice assistants, scheduling call campaigns, or initiating conversations programmatically.","om-scogo\u002Fskillsh-scraper","om-scogo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160466840?v=4","01M79AWB6DFVCQ7RK70CS34B96","Om Achrekar","01M79AWB6ZM9SKR8KDH1WSSM22",0,"MIT","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fvapiai-skills\u002Fcreate-call\u002Fcreate-call\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: create-call\ndescription: Create outbound phone calls, web calls, and batch calls using the Vapi API. Use when making automated calls, testing voice assistants, scheduling call campaigns, or initiating conversations programmatically.\nlicense: MIT\ncompatibility: Requires internet access and a Vapi API key (VAPI_API_KEY).\nmetadata:\n  author: vapi\n  version: \"1.0\"\n---\n\n# Vapi Call Creation\n\nInitiate outbound phone calls, web calls, and batch calls using Vapi's API. Connect your voice assistants to real phone numbers and test them programmatically.\n\n> **Setup:** Ensure `VAPI_API_KEY` is set. See the `setup-api-key` skill if needed.\n\n## Quick Start — Outbound Phone Call\n\n### cURL\n\n```bash\ncurl -X POST https:\u002F\u002Fapi.vapi.ai\u002Fcall \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"assistantId\": \"your-assistant-id\",\n    \"phoneNumberId\": \"your-phone-number-id\",\n    \"customer\": {\n      \"number\": \"+11234567890\"\n    }\n  }'\n```\n\n### TypeScript (Server SDK)\n\n```typescript\nimport { VapiClient } from \"@vapi-ai\u002Fserver-sdk\";\n\nconst vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });\n\nconst call = await vapi.calls.create({\n  assistantId: \"your-assistant-id\",\n  phoneNumberId: \"your-phone-number-id\",\n  customer: {\n    number: \"+11234567890\",\n  },\n});\n\nconsole.log(\"Call created:\", call.id);\n```\n\n### Python\n\n```python\nimport requests\nimport os\n\nresponse = requests.post(\n    \"https:\u002F\u002Fapi.vapi.ai\u002Fcall\",\n    headers={\n        \"Authorization\": f\"Bearer {os.environ['VAPI_API_KEY']}\",\n        \"Content-Type\": \"application\u002Fjson\",\n    },\n    json={\n        \"assistantId\": \"your-assistant-id\",\n        \"phoneNumberId\": \"your-phone-number-id\",\n        \"customer\": {\"number\": \"+11234567890\"},\n    },\n)\n\ncall = response.json()\nprint(f\"Call initiated: {call['id']}\")\n```\n\n## Call Types\n\n### Outbound Phone Call\n\nRequires an assistant, a Vapi phone number, and a customer number.\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\",\n    \"name\": \"John Doe\",\n    \"numberE164CheckEnabled\": true\n  }\n}\n```\n\n### Web Call\n\nFor browser-based calls — no phone number needed. Use the Vapi Web SDK on the client side.\n\n```json\n{\n  \"assistantId\": \"assistant-id\"\n}\n```\n\nClient-side (JavaScript):\n```javascript\nimport Vapi from \"@vapi-ai\u002Fweb\";\n\nconst vapi = new Vapi(\"your-public-key\");\nvapi.start(\"your-assistant-id\");\n```\n\n### Transient Assistant Call\n\nDefine an assistant inline instead of referencing a saved one:\n\n```json\n{\n  \"assistant\": {\n    \"name\": \"Quick Test\",\n    \"firstMessage\": \"Hello! This is a test call.\",\n    \"model\": {\n      \"provider\": \"openai\",\n      \"model\": \"gpt-4.1\",\n      \"messages\": [\n        {\n          \"role\": \"system\",\n          \"content\": \"You are a test assistant. Confirm the call is working and end politely.\"\n        }\n      ]\n    },\n    \"voice\": { \"provider\": \"vapi\", \"voiceId\": \"Elliot\", \"version\": 2 },\n    \"transcriber\": { \"provider\": \"deepgram\", \"model\": \"nova-3\", \"language\": \"en\" }\n  },\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  }\n}\n```\n\n## Scheduled Calls\n\nSchedule a call for a future time:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"schedulePlan\": {\n    \"earliestAt\": \"2025-06-15T14:00:00Z\",\n    \"latestAt\": \"2025-06-15T15:00:00Z\"\n  }\n}\n```\n\n- `earliestAt` — Earliest time to attempt the call (ISO 8601)\n- `latestAt` — Latest time to attempt the call (optional)\n- If using `assistantId`, the latest version of the assistant is used at call time\n- For a fixed assistant config, use `assistant` (transient) instead\n\n## Batch Calls\n\nCall multiple numbers in one request:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customers\": [\n    { \"number\": \"+11234567890\", \"name\": \"Alice\" },\n    { \"number\": \"+10987654321\", \"name\": \"Bob\" },\n    { \"number\": \"+15551234567\", \"name\": \"Carol\" }\n  ]\n}\n```\n\nCombine with `schedulePlan` for scheduled batch calls.\n\n## Call with Metadata\n\nPass custom data accessible during the call:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"metadata\": {\n    \"orderId\": \"ORD-12345\",\n    \"department\": \"billing\"\n  }\n}\n```\n\n## Managing Calls\n\n```bash\n# List calls\ncurl \"https:\u002F\u002Fapi.vapi.ai\u002Fcall?limit=10\" \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n\n# Get a specific call\ncurl https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n\n# Get call with transcript and recording\ncurl https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n# Response includes: artifact.transcript, artifact.recordingUrl,\n# analysis.summary, and costBreakdown when those outputs are enabled\n\n# Delete a call\ncurl -X DELETE https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n```\n\n## Call Response\n\nA successful call creation returns:\n\n```json\n{\n  \"id\": \"call-uuid\",\n  \"orgId\": \"org-uuid\",\n  \"type\": \"outboundPhoneCall\",\n  \"status\": \"queued\",\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"createdAt\": \"2025-01-15T10:00:00Z\"\n}\n```\n\nCall statuses: `queued` → `ringing` → `in-progress` → `ended`\n\n## Compliance Warning\n\nIt is a violation of FCC law to dial phone numbers without consent in an automated manner. Review TCPA consent requirements before launching automated call campaigns.\n\n## References\n\n- [Vapi Outbound Calls Docs](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Foutbound-calling)\n- [Call Features](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Fcall-features)\n- [Voicemail Detection](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Fvoicemail-detection)\n\n## Additional Resources\n\nVapi provides a **documentation MCP server** that gives compatible AI agents access to the Vapi knowledge base. Use its documentation search for advanced configuration, troubleshooting, SDK details, and anything beyond this skill.\n\n**Manual setup:** If your agent doesn't auto-detect the config, run:\n```bash\nclaude mcp add vapi-docs -- npx -y mcp-remote https:\u002F\u002Fdocs.vapi.ai\u002F_mcp\u002Fserver\n```\n\nSee the [Vapi MCP integration guide](https:\u002F\u002Fdocs.vapi.ai\u002Fcli\u002Fmcp) for setup instructions across supported agents.\n","# Vapi Call Creation\n\nInitiate outbound phone calls, web calls, and batch calls using Vapi's API. Connect your voice assistants to real phone numbers and test them programmatically.\n\n> **Setup:** Ensure `VAPI_API_KEY` is set. See the `setup-api-key` skill if needed.\n\n## Quick Start — Outbound Phone Call\n\n### cURL\n\n```bash\ncurl -X POST https:\u002F\u002Fapi.vapi.ai\u002Fcall \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"assistantId\": \"your-assistant-id\",\n    \"phoneNumberId\": \"your-phone-number-id\",\n    \"customer\": {\n      \"number\": \"+11234567890\"\n    }\n  }'\n```\n\n### TypeScript (Server SDK)\n\n```typescript\nimport { VapiClient } from \"@vapi-ai\u002Fserver-sdk\";\n\nconst vapi = new VapiClient({ token: process.env.VAPI_API_KEY! });\n\nconst call = await vapi.calls.create({\n  assistantId: \"your-assistant-id\",\n  phoneNumberId: \"your-phone-number-id\",\n  customer: {\n    number: \"+11234567890\",\n  },\n});\n\nconsole.log(\"Call created:\", call.id);\n```\n\n### Python\n\n```python\nimport requests\nimport os\n\nresponse = requests.post(\n    \"https:\u002F\u002Fapi.vapi.ai\u002Fcall\",\n    headers={\n        \"Authorization\": f\"Bearer {os.environ['VAPI_API_KEY']}\",\n        \"Content-Type\": \"application\u002Fjson\",\n    },\n    json={\n        \"assistantId\": \"your-assistant-id\",\n        \"phoneNumberId\": \"your-phone-number-id\",\n        \"customer\": {\"number\": \"+11234567890\"},\n    },\n)\n\ncall = response.json()\nprint(f\"Call initiated: {call['id']}\")\n```\n\n## Call Types\n\n### Outbound Phone Call\n\nRequires an assistant, a Vapi phone number, and a customer number.\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\",\n    \"name\": \"John Doe\",\n    \"numberE164CheckEnabled\": true\n  }\n}\n```\n\n### Web Call\n\nFor browser-based calls — no phone number needed. Use the Vapi Web SDK on the client side.\n\n```json\n{\n  \"assistantId\": \"assistant-id\"\n}\n```\n\nClient-side (JavaScript):\n```javascript\nimport Vapi from \"@vapi-ai\u002Fweb\";\n\nconst vapi = new Vapi(\"your-public-key\");\nvapi.start(\"your-assistant-id\");\n```\n\n### Transient Assistant Call\n\nDefine an assistant inline instead of referencing a saved one:\n\n```json\n{\n  \"assistant\": {\n    \"name\": \"Quick Test\",\n    \"firstMessage\": \"Hello! This is a test call.\",\n    \"model\": {\n      \"provider\": \"openai\",\n      \"model\": \"gpt-4.1\",\n      \"messages\": [\n        {\n          \"role\": \"system\",\n          \"content\": \"You are a test assistant. Confirm the call is working and end politely.\"\n        }\n      ]\n    },\n    \"voice\": { \"provider\": \"vapi\", \"voiceId\": \"Elliot\", \"version\": 2 },\n    \"transcriber\": { \"provider\": \"deepgram\", \"model\": \"nova-3\", \"language\": \"en\" }\n  },\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  }\n}\n```\n\n## Scheduled Calls\n\nSchedule a call for a future time:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"schedulePlan\": {\n    \"earliestAt\": \"2025-06-15T14:00:00Z\",\n    \"latestAt\": \"2025-06-15T15:00:00Z\"\n  }\n}\n```\n\n- `earliestAt` — Earliest time to attempt the call (ISO 8601)\n- `latestAt` — Latest time to attempt the call (optional)\n- If using `assistantId`, the latest version of the assistant is used at call time\n- For a fixed assistant config, use `assistant` (transient) instead\n\n## Batch Calls\n\nCall multiple numbers in one request:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customers\": [\n    { \"number\": \"+11234567890\", \"name\": \"Alice\" },\n    { \"number\": \"+10987654321\", \"name\": \"Bob\" },\n    { \"number\": \"+15551234567\", \"name\": \"Carol\" }\n  ]\n}\n```\n\nCombine with `schedulePlan` for scheduled batch calls.\n\n## Call with Metadata\n\nPass custom data accessible during the call:\n\n```json\n{\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"metadata\": {\n    \"orderId\": \"ORD-12345\",\n    \"department\": \"billing\"\n  }\n}\n```\n\n## Managing Calls\n\n```bash\n# List calls\ncurl \"https:\u002F\u002Fapi.vapi.ai\u002Fcall?limit=10\" \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n\n# Get a specific call\ncurl https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n\n# Get call with transcript and recording\ncurl https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n# Response includes: artifact.transcript, artifact.recordingUrl,\n# analysis.summary, and costBreakdown when those outputs are enabled\n\n# Delete a call\ncurl -X DELETE https:\u002F\u002Fapi.vapi.ai\u002Fcall\u002F{id} \\\n  -H \"Authorization: Bearer $VAPI_API_KEY\"\n```\n\n## Call Response\n\nA successful call creation returns:\n\n```json\n{\n  \"id\": \"call-uuid\",\n  \"orgId\": \"org-uuid\",\n  \"type\": \"outboundPhoneCall\",\n  \"status\": \"queued\",\n  \"assistantId\": \"assistant-id\",\n  \"phoneNumberId\": \"phone-number-id\",\n  \"customer\": {\n    \"number\": \"+11234567890\"\n  },\n  \"createdAt\": \"2025-01-15T10:00:00Z\"\n}\n```\n\nCall statuses: `queued` → `ringing` → `in-progress` → `ended`\n\n## Compliance Warning\n\nIt is a violation of FCC law to dial phone numbers without consent in an automated manner. Review TCPA consent requirements before launching automated call campaigns.\n\n## References\n\n- [Vapi Outbound Calls Docs](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Foutbound-calling)\n- [Call Features](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Fcall-features)\n- [Voicemail Detection](https:\u002F\u002Fdocs.vapi.ai\u002Fcalls\u002Fvoicemail-detection)\n\n## Additional Resources\n\nVapi provides a **documentation MCP server** that gives compatible AI agents access to the Vapi knowledge base. Use its documentation search for advanced configuration, troubleshooting, SDK details, and anything beyond this skill.\n\n**Manual setup:** If your agent doesn't auto-detect the config, run:\n```bash\nclaude mcp add vapi-docs -- npx -y mcp-remote https:\u002F\u002Fdocs.vapi.ai\u002F_mcp\u002Fserver\n```\n\nSee the [Vapi MCP integration guide](https:\u002F\u002Fdocs.vapi.ai\u002Fcli\u002Fmcp) for setup instructions across supported agents.\n",{"name":5,"license":15,"metadata":24,"description":7,"compatibility":27},{"author":25,"version":26},"vapi","1.0","Requires internet access and a Vapi API key (VAPI_API_KEY).","main","8859218955d9504cd18b59e7892100718039d3b4","data\u002Fskills\u002Fvapiai-skills\u002Fcreate-call\u002Fcreate-call",1,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper","https:\u002F\u002Fgithub.com\u002Fom-scogo","SDE-1 @ Scogo ","2026-07-18 12:22:46",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add om-scogo\u002Fskillsh-scraper --skill create-call",{"tool":42,"command":43},"bunx","bunx skills add om-scogo\u002Fskillsh-scraper --skill create-call",{"tool":45,"command":46},"pnpm","pnpm dlx skills add om-scogo\u002Fskillsh-scraper --skill create-call","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fvapiai-skills\u002Fcreate-call\u002Fcreate-call\u002FSKILL.md",true,[],[51,58,63,70,75,82],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":19},"01M7D6MC9FAAEV4CMNYX8W7JTG","arxiv-search","Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002Fskills\u002Farxiv-search\u002FSKILL.md",[],[],{"skillNo":59,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":19},"01M7D6M85CKKN87TA98VCQV4H7","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002FSkill.md",[],[],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":19},"01M7D4ZTCS4DR3CE4JY06X84T2","working-with-legacy-code","Safely change and test untested codebases using Feathers' \"Working Effectively with Legacy Code\". Use when the user mentions \"legacy code\", \"no tests\", \"untested codebase\", \"how do I test this\", \"seams\", \"characterization tests\", \"golden master\", \"sprout method\", \"afraid to change this code\", \"monster method\", \"dependency breaking\", or \"inherited a messy codebase\". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout\u002Fwrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002Fworking-with-legacy-code\u002FSKILL.md",[],[],{"skillNo":71,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M7D4ZHZKJD2RSNGAF63V14P4","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002FSkill.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7D4ZB4CJBFW5JE67CPH2QRV","web-typography","Select, pair, and implement typefaces for web projects. Use when the user mentions \"font pairing\", \"which typeface\", \"line height\", \"responsive typography\", \"web font loading\", \"type hierarchy\", \"variable fonts\", \"FOUT\u002FFOIT\", \"typographic scale\", or \"the text is hard to read\". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002Fweb-typography\u002FSKILL.md",[],[],{"skillNo":83,"name":77,"nameZh":6,"description":78,"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":86,"publishedAt":19},"01M7D4Z4MVYVY3NMJ18BNV6WNA","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002FSkill.md",[],[]]