[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EWF72NG2MATZ7009VRGFQ0":3,"skill-same:01M6EWF72NG2MATZ7009VRGFQ0":69},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6EWF72NG2MATZ7009VRGFQ0","lark-shared",null,"飞书\u002FLark CLI 共享基础：应用配置初始化、认证登录（auth login）、身份切换（--as user\u002Fbot）、权限与 scope 管理、Permission denied 错误处理、安全规则。当用户需要第一次配置(`lark-cli config init`)、使用登录授权(`lark-cli auth login`)、遇到权限不足、切换 user\u002Fbot 身份、配置 scope、或首次使用 lark-cli 时触发。","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Flarksuite\u002Flark-shared\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"lark shared","lark","shared","bot","cli","auth","init","config","安全","user","permission","as","初始化","规则","scope","2026-11-10 10:12:30",false,"---\nname: lark-shared\nversion: 1.0.0\ndescription: \"飞书\u002FLark CLI 共享基础：应用配置初始化、认证登录（auth login）、身份切换（--as user\u002Fbot）、权限与 scope 管理、Permission denied 错误处理、安全规则。当用户需要第一次配置(`lark-cli config init`)、使用登录授权(`lark-cli auth login`)、遇到权限不足、切换 user\u002Fbot 身份、配置 scope、或首次使用 lark-cli 时触发。\"\n---\n\n# lark-cli 共享规则\n\n本技能指导你如何通过lark-cli操作飞书资源, 以及有哪些注意事项。\n\n## 配置初始化\n\n首次使用需运行 `lark-cli config init` 完成应用配置。\n\n当你帮用户初始化配置时，使用background方式使用下面的命令发起配置应用流程，启动后读取输出，从中提取授权链接并发给用户：\n\n```bash\n# 发起配置（该命令会阻塞直到用户打开链接并完成操作或过期）\nlark-cli config init --new\n```\n\n## 认证\n\n### 身份类型\n\n两种身份类型，通过 `--as` 切换：\n\n| 身份 | 标识 | 获取方式 | 适用场景 |\n|------|------|---------|---------|\n| user 用户身份 | `--as user` | `lark-cli auth login` 等 | 访问用户自己的资源（日历、云空间等） |\n| bot 应用身份 | `--as bot` | 自动，只需 appId + appSecret | 应用级操作,访问bot自己的资源 |\n\n### 身份选择原则\n\n输出的 `[identity: bot\u002Fuser]` 代表当前身份。bot 与 user 表现差异很大，需确认身份符合目标需求：\n\n- **Bot 看不到用户资源**：无法访问用户的日历、云空间文档、邮箱等个人资源。例如 `--as bot` 查日程返回 bot 自己的（空）日历\n- **Bot 无法代表用户操作**：发消息以应用名义发送，创建文档归属 bot\n- **Bot 权限**：只需在飞书开发者后台开通 scope，无需 `auth login`\n- **User 权限**：后台开通 scope + 用户通过 `auth login` 授权，两层都要满足\n\n\n### 权限不足处理\n\n遇到权限相关错误时，**根据当前身份类型采取不同解决方案**。\n\n错误响应中包含关键信息：\n- `permission_violations`：列出缺失的 scope (N选1)\n- `console_url`：飞书开发者后台的权限配置链接\n- `hint`：建议的修复命令\n\n#### Bot 身份（`--as bot`）\n\n将错误中的 `console_url` 提供给用户，引导去后台开通 scope。**禁止**对 bot 执行 `auth login`。\n\n#### User 身份（`--as user`）\n\n```bash\nlark-cli auth login --domain \u003Cdomain>           # 按业务域授权\nlark-cli auth login --scope \"\u003Cmissing_scope>\"   # 按具体 scope 授权（推荐,符合最小权限原则）\n```\n\n**规则**：auth login 必须指定范围（`--domain` 或 `--scope`）。多次 login 的 scope 会累积（增量授权）。\n\n#### Agent 代理发起认证（推荐）\n\n当你作为 AI agent 需要帮用户完成认证时，使用background方式 执行以下命令发起授权流程, 并将授权链接发给用户：\n\n```bash\n# 发起授权（阻塞直到用户授权完成或过期）\nlark-cli auth login --scope \"calendar:calendar:readonly\"\n\n```\n\n\n## 安全规则\n\n- **禁止输出密钥**（appSecret、accessToken）到终端明文。\n- **写入\u002F删除操作前必须确认用户意图**。\n- 用 `--dry-run` 预览危险请求。\n","# lark-cli 共享规则\n\n本技能指导你如何通过lark-cli操作飞书资源, 以及有哪些注意事项。\n\n## 配置初始化\n\n首次使用需运行 `lark-cli config init` 完成应用配置。\n\n当你帮用户初始化配置时，使用background方式使用下面的命令发起配置应用流程，启动后读取输出，从中提取授权链接并发给用户：\n\n```bash\n# 发起配置（该命令会阻塞直到用户打开链接并完成操作或过期）\nlark-cli config init --new\n```\n\n## 认证\n\n### 身份类型\n\n两种身份类型，通过 `--as` 切换：\n\n| 身份 | 标识 | 获取方式 | 适用场景 |\n|------|------|---------|---------|\n| user 用户身份 | `--as user` | `lark-cli auth login` 等 | 访问用户自己的资源（日历、云空间等） |\n| bot 应用身份 | `--as bot` | 自动，只需 appId + appSecret | 应用级操作,访问bot自己的资源 |\n\n### 身份选择原则\n\n输出的 `[identity: bot\u002Fuser]` 代表当前身份。bot 与 user 表现差异很大，需确认身份符合目标需求：\n\n- **Bot 看不到用户资源**：无法访问用户的日历、云空间文档、邮箱等个人资源。例如 `--as bot` 查日程返回 bot 自己的（空）日历\n- **Bot 无法代表用户操作**：发消息以应用名义发送，创建文档归属 bot\n- **Bot 权限**：只需在飞书开发者后台开通 scope，无需 `auth login`\n- **User 权限**：后台开通 scope + 用户通过 `auth login` 授权，两层都要满足\n\n\n### 权限不足处理\n\n遇到权限相关错误时，**根据当前身份类型采取不同解决方案**。\n\n错误响应中包含关键信息：\n- `permission_violations`：列出缺失的 scope (N选1)\n- `console_url`：飞书开发者后台的权限配置链接\n- `hint`：建议的修复命令\n\n#### Bot 身份（`--as bot`）\n\n将错误中的 `console_url` 提供给用户，引导去后台开通 scope。**禁止**对 bot 执行 `auth login`。\n\n#### User 身份（`--as user`）\n\n```bash\nlark-cli auth login --domain \u003Cdomain>           # 按业务域授权\nlark-cli auth login --scope \"\u003Cmissing_scope>\"   # 按具体 scope 授权（推荐,符合最小权限原则）\n```\n\n**规则**：auth login 必须指定范围（`--domain` 或 `--scope`）。多次 login 的 scope 会累积（增量授权）。\n\n#### Agent 代理发起认证（推荐）\n\n当你作为 AI agent 需要帮用户完成认证时，使用background方式 执行以下命令发起授权流程, 并将授权链接发给用户：\n\n```bash\n# 发起授权（阻塞直到用户授权完成或过期）\nlark-cli auth login --scope \"calendar:calendar:readonly\"\n\n```\n\n\n## 安全规则\n\n- **禁止输出密钥**（appSecret、accessToken）到终端明文。\n- **写入\u002F删除操作前必须确认用户意图**。\n- 用 `--dry-run` 预览危险请求。\n",{"name":5,"version":39,"description":7},"1.0.0","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Flarksuite\u002Flark-shared",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill lark-shared",{"tool":55,"command":56},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill lark-shared",{"tool":58,"command":59},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill lark-shared","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Flarksuite\u002Flark-shared\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"skill-report.json","REFERENCE","参考文档",10280,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Flarksuite\u002Flark-shared\u002Fskill-report.json",[70,84,94,103,109,116],{"skillNo":71,"name":72,"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":73,"categories":74,"keywords":80,"publishedAt":34},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[75],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[81,82,83],"model","model hierarchy","model hierarchy skill",{"skillNo":85,"name":86,"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":87,"categories":88,"keywords":90,"publishedAt":34},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[89],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},[91,92,93],"MCP","zoom","zoom mcp",{"skillNo":95,"name":96,"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":97,"categories":98,"keywords":99,"publishedAt":34},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[100,101,102,92],"sdk","zoom apps sdk","apps",{"skillNo":104,"name":105,"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":106,"categories":107,"keywords":108,"publishedAt":34},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[105],{"skillNo":110,"name":111,"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":112,"categories":113,"keywords":115,"publishedAt":34},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[114],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},[111],{"skillNo":117,"name":118,"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":119,"categories":120,"keywords":121,"publishedAt":34},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[118]]