[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E17M3G1DFYTCJBZ0V70WCB":3,"skill-same:01M6E17M3G1DFYTCJBZ0V70WCB":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":13,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6E17M3G1DFYTCJBZ0V70WCB","documentation-lookup",null,"Use up-to-date library and framework docs via Context7 MCP instead of training data. Activates for setup questions, API references, code examples, or when the user names a framework (e.g. React, Next.js, Prisma).","7dvq6yrkgs-stack\u002Fplaywright","7dvq6yrkgs-stack","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F251638143?v=4","01M6E061J2AMGWYZ6TK7Y8NM74","01M6E061PQCQJGQMPBERMCFN5G",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fdocumentation-lookup\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"documentation","lookup","documentation lookup","api","prisma","next","context7","references","context7 mcp","up","use","Next.js","MCP","data","examples","library","framework","code","training","react","2026-11-10 10:12:30",false,"---\nname: documentation-lookup\ndescription: Use up-to-date library and framework docs via Context7 MCP instead of training data. Activates for setup questions, API references, code examples, or when the user names a framework (e.g. React, Next.js, Prisma).\norigin: ECC\n---\n\n# Documentation Lookup (Context7)\n\nWhen the user asks about libraries, frameworks, or APIs, fetch current documentation via the Context7 MCP (tools `resolve-library-id` and `query-docs`) instead of relying on training data.\n\n## Core Concepts\n\n- **Context7**: MCP server that exposes live documentation; use it instead of training data for libraries and APIs.\n- **resolve-library-id**: Returns Context7-compatible library IDs (e.g. `\u002Fvercel\u002Fnext.js`) from a library name and query.\n- **query-docs**: Fetches documentation and code snippets for a given library ID and question. Always call resolve-library-id first to get a valid library ID.\n\n## When to use\n\nActivate when the user:\n\n- Asks setup or configuration questions (e.g. \"How do I configure Next.js middleware?\")\n- Requests code that depends on a library (\"Write a Prisma query for...\")\n- Needs API or reference information (\"What are the Supabase auth methods?\")\n- Mentions specific frameworks or libraries (React, Vue, Svelte, Express, Tailwind, Prisma, Supabase, etc.)\n\nUse this skill whenever the request depends on accurate, up-to-date behavior of a library, framework, or API. Applies across harnesses that have the Context7 MCP configured (e.g. Claude Code, Cursor, Codex).\n\n## How it works\n\n### Step 1: Resolve the Library ID\n\nCall the **resolve-library-id** MCP tool with:\n\n- **libraryName**: The library or product name taken from the user's question (e.g. `Next.js`, `Prisma`, `Supabase`).\n- **query**: The user's full question. This improves relevance ranking of results.\n\nYou must obtain a Context7-compatible library ID (format `\u002Forg\u002Fproject` or `\u002Forg\u002Fproject\u002Fversion`) before querying docs. Do not call query-docs without a valid library ID from this step.\n\n### Step 2: Select the Best Match\n\nFrom the resolution results, choose one result using:\n\n- **Name match**: Prefer exact or closest match to what the user asked for.\n- **Benchmark score**: Higher scores indicate better documentation quality (100 is highest).\n- **Source reputation**: Prefer High or Medium reputation when available.\n- **Version**: If the user specified a version (e.g. \"React 19\", \"Next.js 15\"), prefer a version-specific library ID if listed (e.g. `\u002Forg\u002Fproject\u002Fv1.2.0`).\n\n### Step 3: Fetch the Documentation\n\nCall the **query-docs** MCP tool with:\n\n- **libraryId**: The selected Context7 library ID from Step 2 (e.g. `\u002Fvercel\u002Fnext.js`).\n- **query**: The user's specific question or task. Be specific to get relevant snippets.\n\nLimit: do not call query-docs (or resolve-library-id) more than 3 times per question. If the answer is unclear after 3 calls, state the uncertainty and use the best information you have rather than guessing.\n\n### Step 4: Use the Documentation\n\n- Answer the user's question using the fetched, current information.\n- Include relevant code examples from the docs when helpful.\n- Cite the library or version when it matters (e.g. \"In Next.js 15...\").\n\n## Examples\n\n### Example: Next.js middleware\n\n1. Call **resolve-library-id** with `libraryName: \"Next.js\"`, `query: \"How do I set up Next.js middleware?\"`.\n2. From results, pick the best match (e.g. `\u002Fvercel\u002Fnext.js`) by name and benchmark score.\n3. Call **query-docs** with `libraryId: \"\u002Fvercel\u002Fnext.js\"`, `query: \"How do I set up Next.js middleware?\"`.\n4. Use the returned snippets and text to answer; include a minimal `middleware.ts` example from the docs if relevant.\n\n### Example: Prisma query\n\n1. Call **resolve-library-id** with `libraryName: \"Prisma\"`, `query: \"How do I query with relations?\"`.\n2. Select the official Prisma library ID (e.g. `\u002Fprisma\u002Fprisma`).\n3. Call **query-docs** with that `libraryId` and the query.\n4. Return the Prisma Client pattern (e.g. `include` or `select`) with a short code snippet from the docs.\n\n### Example: Supabase auth methods\n\n1. Call **resolve-library-id** with `libraryName: \"Supabase\"`, `query: \"What are the auth methods?\"`.\n2. Pick the Supabase docs library ID.\n3. Call **query-docs**; summarize the auth methods and show minimal examples from the fetched docs.\n\n## Best Practices\n\n- **Be specific**: Use the user's full question as the query where possible for better relevance.\n- **Version awareness**: When users mention versions, use version-specific library IDs from the resolve step when available.\n- **Prefer official sources**: When multiple matches exist, prefer official or primary packages over community forks.\n- **No sensitive data**: Redact API keys, passwords, tokens, and other secrets from any query sent to Context7. Treat the user's question as potentially containing secrets before passing it to resolve-library-id or query-docs.\n","# Documentation Lookup (Context7)\n\nWhen the user asks about libraries, frameworks, or APIs, fetch current documentation via the Context7 MCP (tools `resolve-library-id` and `query-docs`) instead of relying on training data.\n\n## Core Concepts\n\n- **Context7**: MCP server that exposes live documentation; use it instead of training data for libraries and APIs.\n- **resolve-library-id**: Returns Context7-compatible library IDs (e.g. `\u002Fvercel\u002Fnext.js`) from a library name and query.\n- **query-docs**: Fetches documentation and code snippets for a given library ID and question. Always call resolve-library-id first to get a valid library ID.\n\n## When to use\n\nActivate when the user:\n\n- Asks setup or configuration questions (e.g. \"How do I configure Next.js middleware?\")\n- Requests code that depends on a library (\"Write a Prisma query for...\")\n- Needs API or reference information (\"What are the Supabase auth methods?\")\n- Mentions specific frameworks or libraries (React, Vue, Svelte, Express, Tailwind, Prisma, Supabase, etc.)\n\nUse this skill whenever the request depends on accurate, up-to-date behavior of a library, framework, or API. Applies across harnesses that have the Context7 MCP configured (e.g. Claude Code, Cursor, Codex).\n\n## How it works\n\n### Step 1: Resolve the Library ID\n\nCall the **resolve-library-id** MCP tool with:\n\n- **libraryName**: The library or product name taken from the user's question (e.g. `Next.js`, `Prisma`, `Supabase`).\n- **query**: The user's full question. This improves relevance ranking of results.\n\nYou must obtain a Context7-compatible library ID (format `\u002Forg\u002Fproject` or `\u002Forg\u002Fproject\u002Fversion`) before querying docs. Do not call query-docs without a valid library ID from this step.\n\n### Step 2: Select the Best Match\n\nFrom the resolution results, choose one result using:\n\n- **Name match**: Prefer exact or closest match to what the user asked for.\n- **Benchmark score**: Higher scores indicate better documentation quality (100 is highest).\n- **Source reputation**: Prefer High or Medium reputation when available.\n- **Version**: If the user specified a version (e.g. \"React 19\", \"Next.js 15\"), prefer a version-specific library ID if listed (e.g. `\u002Forg\u002Fproject\u002Fv1.2.0`).\n\n### Step 3: Fetch the Documentation\n\nCall the **query-docs** MCP tool with:\n\n- **libraryId**: The selected Context7 library ID from Step 2 (e.g. `\u002Fvercel\u002Fnext.js`).\n- **query**: The user's specific question or task. Be specific to get relevant snippets.\n\nLimit: do not call query-docs (or resolve-library-id) more than 3 times per question. If the answer is unclear after 3 calls, state the uncertainty and use the best information you have rather than guessing.\n\n### Step 4: Use the Documentation\n\n- Answer the user's question using the fetched, current information.\n- Include relevant code examples from the docs when helpful.\n- Cite the library or version when it matters (e.g. \"In Next.js 15...\").\n\n## Examples\n\n### Example: Next.js middleware\n\n1. Call **resolve-library-id** with `libraryName: \"Next.js\"`, `query: \"How do I set up Next.js middleware?\"`.\n2. From results, pick the best match (e.g. `\u002Fvercel\u002Fnext.js`) by name and benchmark score.\n3. Call **query-docs** with `libraryId: \"\u002Fvercel\u002Fnext.js\"`, `query: \"How do I set up Next.js middleware?\"`.\n4. Use the returned snippets and text to answer; include a minimal `middleware.ts` example from the docs if relevant.\n\n### Example: Prisma query\n\n1. Call **resolve-library-id** with `libraryName: \"Prisma\"`, `query: \"How do I query with relations?\"`.\n2. Select the official Prisma library ID (e.g. `\u002Fprisma\u002Fprisma`).\n3. Call **query-docs** with that `libraryId` and the query.\n4. Return the Prisma Client pattern (e.g. `include` or `select`) with a short code snippet from the docs.\n\n### Example: Supabase auth methods\n\n1. Call **resolve-library-id** with `libraryName: \"Supabase\"`, `query: \"What are the auth methods?\"`.\n2. Pick the Supabase docs library ID.\n3. Call **query-docs**; summarize the auth methods and show minimal examples from the fetched docs.\n\n## Best Practices\n\n- **Be specific**: Use the user's full question as the query where possible for better relevance.\n- **Version awareness**: When users mention versions, use version-specific library IDs from the resolve step when available.\n- **Prefer official sources**: When multiple matches exist, prefer official or primary packages over community forks.\n- **No sensitive data**: Redact API keys, passwords, tokens, and other secrets from any query sent to Context7. Treat the user's question as potentially containing secrets before passing it to resolve-library-id or query-docs.\n",{"name":5,"origin":51,"description":7},"ECC","main","a2e3284ed4488780397ee2f78217366e11470dfb","skills\u002Fdocumentation-lookup","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright","https:\u002F\u002Fplaywright.dev","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack","2026-04-25 06:04:45",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill documentation-lookup",{"tool":65,"command":66},"bunx","bunx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill documentation-lookup",{"tool":68,"command":69},"pnpm","pnpm dlx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill documentation-lookup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fdocumentation-lookup\u002FSKILL.md",true,[73,79],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},".skillfish.json","REFERENCE","参考文档",255,"https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fdocumentation-lookup\u002F.skillfish.json",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"agents\u002Fopenai.yaml",241,"https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fdocumentation-lookup\u002Fagents\u002Fopenai.yaml",[84,110,120,130,145,160],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":100,"publishedAt":46},"01M6E3XK4PRPMQHM7Y98FQPTY1","zyte-api-automation","Automate Zyte API tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzyte-api-automation\u002FSKILL.md",[90,91,94,95],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":92,"categoryName":93,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[101,29,102,38,103,104,105,106,107,108,109],"zyte api automation","automation","tasks","search","Tools","first","automate","composio","via",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":118,"publishedAt":46},"01M6E3XFX6QSTR1QR59NFXJTMA","zylvie-automation","Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzylvie-automation\u002FSKILL.md",[116,117],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[119,102,107,38,103,104,105,106,108,109],"zylvie automation",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":128,"publishedAt":46},"01M6E3XCX2GDYYCHN58ZJHT37M","zoominfo-automation","Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoominfo-automation\u002FSKILL.md",[126,127],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[129,102,104,105,106,107,108,109,103,38],"zoominfo automation",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":138,"publishedAt":46},"01M6E3X9WJ2T73216WQHHTB9BD","zoho_mail-automation","Automate Zoho Mail tasks via Rube MCP (Composio): email sending, folders, labels, and mailbox management. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_mail-automation\u002FSKILL.md",[136,137],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[139,140,141,102,38,103,104,142,105,106,107,143,108,144,109],"mail","zoho mail automation","zoho","email","management","mailbox",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":156,"publishedAt":46},"01M6E3X719W648XZBW1EC6JQ64","zoho_invoice-automation","Automate Zoho Invoice tasks via Rube MCP (Composio): invoices, estimates, expenses, clients, and payment tracking. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_invoice-automation\u002FSKILL.md",[151,152,153],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":154,"categoryName":155,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000040","财务",[157,141,102,103,104,105,106,107,158,159,108,109,38],"zoho invoice automation","tracking","payment",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":168,"publishedAt":46},"01M6E3X28JYTC3QTK32AQF7BYB","zoho_inventory-automation","Automate Zoho Inventory tasks via Rube MCP (Composio): items, orders, warehouses, shipments, and stock management. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_inventory-automation\u002FSKILL.md",[166,167],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[102,169,141,170,106,107,105,104,103,38,108,109,171,172,143],"inventory","zoho inventory automation","stock","orders"]