[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CDEPWAVR0J1698W3Z83EGF":3,"skill-same:01M6CDEPWAVR0J1698W3Z83EGF":92},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6CDEPWAVR0J1698W3Z83EGF","feishu",null,"Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI\u002FMCP setup without hardcoding credentials.","codewhale-hq\u002FCodewhale","codewhale-hq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F326694313?v=4","01M6CDD9D70AD3631SMRJ7REW4","Codewhale","01M6CDD9H0VAXYCB2NGGPZC16K",41176,"MIT","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Ffeishu\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36],"MCP","docs","setup","openapi","credentials","work","approval","bots","lark","mcp setup","flows","with","sheets","2026-11-10 10:12:30",false,"---\nname: feishu\ndescription: Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI\u002FMCP setup without hardcoding credentials.\n---\n\n# Feishu \u002F Lark\n\nUse this skill when the user asks for Feishu, Lark, or \"飞书\" integration work.\n\n## Ground Rules\n\n- Feishu China APIs use `open.feishu.cn`; Lark international APIs use\n  `open.larksuite.com`.\n- Never hardcode app secrets, webhook secrets, tenant tokens, or user tokens.\n  Use environment variables such as `FEISHU_APP_ID`,\n  `FEISHU_APP_SECRET`, `FEISHU_WEBHOOK_URL`, and\n  `FEISHU_WEBHOOK_SECRET`.\n- If credentials are unavailable, produce setup instructions or a local stub\n  instead of pretending the integration is live.\n\n## Common Use Cases\n\n- Bot webhook messages\n- App access token and tenant access token flows\n- Docs, Sheets, Wiki, and Bitable reads\u002Fwrites\n- Approval or workflow status updates\n- Feishu\u002FLark MCP server configuration\n\n## Workflow\n\n1. Clarify whether the target is Feishu or Lark.\n2. Identify the credential type: webhook, internal app, marketplace app, or\n   OAuth user token.\n3. Prefer official OpenAPI endpoints and signed webhooks when secrets are\n   configured.\n4. For MCP, build or configure a server that exposes narrow tools such as\n   `send_message`, `read_doc`, `append_sheet_row`, or `query_bitable`.\n5. Register the MCP server with `codewhale mcp add`, then run\n   `codewhale mcp validate` and `codewhale mcp tools`.\n6. Verify with a dry run, sandbox document, or read-back call before sending\n   externally visible messages.\n\nAsk for confirmation before sending messages, writing production documents, or\nchanging approval\u002Fworkflow state.\n","# Feishu \u002F Lark\n\nUse this skill when the user asks for Feishu, Lark, or \"飞书\" integration work.\n\n## Ground Rules\n\n- Feishu China APIs use `open.feishu.cn`; Lark international APIs use\n  `open.larksuite.com`.\n- Never hardcode app secrets, webhook secrets, tenant tokens, or user tokens.\n  Use environment variables such as `FEISHU_APP_ID`,\n  `FEISHU_APP_SECRET`, `FEISHU_WEBHOOK_URL`, and\n  `FEISHU_WEBHOOK_SECRET`.\n- If credentials are unavailable, produce setup instructions or a local stub\n  instead of pretending the integration is live.\n\n## Common Use Cases\n\n- Bot webhook messages\n- App access token and tenant access token flows\n- Docs, Sheets, Wiki, and Bitable reads\u002Fwrites\n- Approval or workflow status updates\n- Feishu\u002FLark MCP server configuration\n\n## Workflow\n\n1. Clarify whether the target is Feishu or Lark.\n2. Identify the credential type: webhook, internal app, marketplace app, or\n   OAuth user token.\n3. Prefer official OpenAPI endpoints and signed webhooks when secrets are\n   configured.\n4. For MCP, build or configure a server that exposes narrow tools such as\n   `send_message`, `read_doc`, `append_sheet_row`, or `query_bitable`.\n5. Register the MCP server with `codewhale mcp add`, then run\n   `codewhale mcp validate` and `codewhale mcp tools`.\n6. Verify with a dry run, sandbox document, or read-back call before sending\n   externally visible messages.\n\nAsk for confirmation before sending messages, writing production documents, or\nchanging approval\u002Fworkflow state.\n",{"name":5,"description":7},"main","654aa776d6bcb98292d4c7c5841fed871e1ba5bd","crates\u002Fskills\u002Fassets\u002Fskills\u002Ffeishu",3571,"https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale","https:\u002F\u002Fcodewhale.net\u002F","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq","https:\u002F\u002Fcodewhale.net","Open-source coding agent for your terminal. Works with the model provider you choose.","2026-11-12 02:35:28",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add codewhale-hq\u002FCodewhale --skill feishu",{"tool":58,"command":59},"bunx","bunx skills add codewhale-hq\u002FCodewhale --skill feishu",{"tool":61,"command":62},"pnpm","pnpm dlx skills add codewhale-hq\u002FCodewhale --skill feishu","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fcrates\u002Fskills\u002Fassets\u002Fskills\u002Ffeishu\u002FSKILL.md",true,[66,72,76,80,84,88],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Farrays.md","REFERENCE","参考文档",11649,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Farrays.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fbags.md",10869,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Fbags.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fbest-practices.md",7317,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Fbest-practices.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fdataframes.md",8778,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Fdataframes.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Ffutures.md",12051,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Ffutures.md",{"path":89,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fschedulers.md",11313,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fscientific-skills\u002Fdask\u002Freferences\u002Fschedulers.md",[93,120,145,165,178,185],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":37},"01M6CDJRMPR8FX1WVFP94PGDMD","gh-find-prs","Survey the open Codewhale PR and issue queue read-only: fetch each item, check it against current code, and produce one coverage and disposition matrix with cited evidence and credit owed.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-find-prs\u002FSKILL.md",[],[100,101,102,103,104,35,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"find","gh find prs","gh","prs","produce","read-only","matrix","codewhale","queue","issue","read","check","code","only","open","survey","pr","evidence","fetch","coverage",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":37},"01M6CDJP0ZYMQNA6AN028X7A96","gh-file-issue","Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-file-issue\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[128,102,129,130,109,131,132,133,134,135,136,137,138,107,139,140,141,35,142,143,144],"file issue","file","gh file issue","milestone","idea","filing","when","new","labels","acceptance","actionable","bug","github issue","github","acceptance criteria","repro","use",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":152,"publishedAt":37},"01M6CDJJZB0G4XHWWBD12S990C","gh-close-issues","Close resolved Codewhale issues only after verifying the landed behavior: Refs #N per landing, Fixes #N only when the reporter's scenario was reproduced, closure at the release step or on the reporter's confirmation, always with a crediting comment.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-close-issues\u002FSKILL.md",[151],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[153,154,155,102,156,157,158,159,35,134,160,161,107,162,163,113,164],"gh close issues","close","issues","at","release","reporter","scenario","closure","fixes","behavior","confirmation","landing",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":37},"01M6CDJGR688JJVTG0A1ETBJGQ","gh-assign-issues","Use to assign GitHub issues to a milestone and\u002For owners in bulk, verifying each.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fgh-assign-issues\u002FSKILL.md",[171],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[173,102,155,174,144,141,131,175,176,177],"gh assign issues","assign","bulk","github issues","owners",{"skillNo":179,"name":180,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":184,"publishedAt":37},"01M6CDJEBMKBAGTBG18N5YJNSE","feedback","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Ffeedback\u002FSKILL.md",[183],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[180],{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":192,"publishedAt":37},"01M6CDJBRQ86PP9XNXQMRB1CGX","cw-slice","Use before writing code for any Codewhale feature, upgrade, or refactor: find the existing owner of the behavior, bound the change to one reviewable slice, and fix the evidence bar before you start.","https:\u002F\u002Fgithub.com\u002Fcodewhale-hq\u002FCodewhale\u002Fblob\u002Fmain\u002Fdocs\u002Fskills\u002Fcw-slice\u002FSKILL.md",[191],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[193,194,195,196,197,198,199,200,201,107,202,162,100,203,112,144,204,205,117],"slice","cw slice","start","bar","you","Existing","upgrade","for","feature","refactor","change","writing","fix"]