Feature Request
Summary: 采用 agent-browser 式的 discovery stub 设计——skills add 只装一个极简 stub SKILL.md,运行时通过 lark-cli skills get <domain> 动态拉取当前 CLI 版本对应的完整 skill 内容,从根上解决 #1465 / #1385 / #1392 的"27 个 lark-* skill 常驻上下文膨胀"问题。
参考实现:https://github.com/vercel-labs/agent-browser
Motivation
#1392 已经精确指出真正痛点:harness(Claude Code / Codex 等)在每次会话启动 把所有已注册 skill 的 name + description 注入上下文,progressive disclosure 只对 SKILL.md 正文 + references 生效,对启动期的 description 列表不生效 。所以 27 个 lark-* skill 的 description 全部常驻,这就是 #1465 / #1385 "skill 太多太乱、claude code 提醒描述超限"的根因。
现有的两条解法都有局限:
agent-browser 的 discovery stub 正好绕开这些拦路虎:注册面 (stub)和内容面 (CLI 动态输出)解耦——stub 极简、占一条 description 的成本几乎为零;真实内容随用随取、永远匹配已安装 CLI 版本、不随 release 变陈旧。
Proposed Design
借鉴 agent-browser,lark-cli 已有(或计划有)skills read 子命令(#1432 引用过 lark-cli skills read <domain-skill>),在此基础上补齐 discovery stub 模式:
极简 stub 安装 :npx skills add larksuite/cli 只装一个根 stub(或每域一个 stub),其 SKILL.md 内容就是一个指针——"运行 lark-cli skills get <domain> 加载真实工作流"。stub 的 description 短到几乎不占启动期上下文。
CLI 动态输出 skills 内容 (复用/扩展现有 skills 子命令):
lark-cli skills list — 枚举可用 skill
lark-cli skills get <name> — 输出某 skill 当前版本完整内容
lark-cli skills get <name> --full — 含 references/templates
lark-cli skills get --all — 输出全部
lark-cli skills path [name] — 打印 skill 目录路径
内容来自已安装 CLI 自带 的 skill 数据目录(LARK_CLI_SKILLS_DIR 可覆盖),永远匹配当前 CLI 版本。
运行时流 :agent 遇到 stub → 按 stub 指引跑 lark-cli skills get <domain> → CLI 输出当前版本完整指令 → agent 用取回的内容继续。注册与内容解耦。
配合 open.feishu.cn 真实安装流 :把 fix(skills): add single entry skill #1432 关闭理由 2(index-driven 源下 root SKILL.md 短路不生效)作为本方案的前置验证项——stub 模式不依赖 root SKILL.md 短路目录扫描,而是依赖 CLI 自带内容输出,应能在 index-driven 安装流下生效。
避免新旧并存 :配合 skills add 增删一致(解决 fix(skills): add single entry skill #1432 关闭理由 3),切到 stub 模式时移除旧的全量 domain skill 安装。
Why this resolves the related issues
Prior art / references
What I'd ask the maintainers to evaluate
lark-cli skills 子命令现状(read 之外是否已有 get/list/path),能否直接承载 stub 模式。
stub 模式在 open.feishu.cn index-driven 真实安装流下是否生效(fix(skills): add single entry skill #1432 关闭理由 2 的前置验证)。
是否接受把"opt-in umbrella"(Proposal: ship a single umbrella skill (router + on-demand domain guides) to cut the always-on agent context cost of 26 skills #1392 方向)升级为 discovery stub,作为 【Feature Req】Skills太多太乱,希望有一个统筹的skills,内部渐进式披露到各具体skills #1465 / 就不能做成一个技能吗?找其他技能的时候,列表都被lark污染了! #1385 / Proposal: ship a single umbrella skill (router + on-demand domain guides) to cut the always-on agent context cost of 26 skills #1392 的统一解。
Context
我在 #1465 做的 GLM-5.2 小样本实测结论是"router 对触发准确率无差别、削掉子层描述会更差"——这恰好说明靠精简/自隐 description 来降上下文是有代价的 ,而 discovery stub 是不牺牲准确率的降上下文路径,值得官方大范围评估。
Feature Request
Summary: 采用 agent-browser 式的 discovery stub 设计——
skills add只装一个极简 stub SKILL.md,运行时通过lark-cli skills get <domain>动态拉取当前 CLI 版本对应的完整 skill 内容,从根上解决 #1465 / #1385 / #1392 的"27 个 lark-* skill 常驻上下文膨胀"问题。参考实现:https://github.com/vercel-labs/agent-browser
Motivation
#1392 已经精确指出真正痛点:harness(Claude Code / Codex 等)在每次会话启动把所有已注册 skill 的
name + description注入上下文,progressive disclosure 只对 SKILL.md 正文 + references 生效,对启动期的 description 列表不生效。所以 27 个 lark-* skill 的 description 全部常驻,这就是 #1465 / #1385 "skill 太多太乱、claude code 提醒描述超限"的根因。现有的两条解法都有局限:
open.feishu.cn主安装源 index-driven、root SKILL.md 短路在真实安装流不生效,且skills add只增不减导致新旧并存上下文反而变大。agent-browser 的 discovery stub 正好绕开这些拦路虎:注册面(stub)和内容面(CLI 动态输出)解耦——stub 极简、占一条 description 的成本几乎为零;真实内容随用随取、永远匹配已安装 CLI 版本、不随 release 变陈旧。
Proposed Design
借鉴 agent-browser,
lark-cli已有(或计划有)skills read子命令(#1432 引用过lark-cli skills read <domain-skill>),在此基础上补齐 discovery stub 模式:npx skills add larksuite/cli只装一个根 stub(或每域一个 stub),其SKILL.md内容就是一个指针——"运行lark-cli skills get <domain>加载真实工作流"。stub 的 description 短到几乎不占启动期上下文。skills子命令):lark-cli skills list— 枚举可用 skilllark-cli skills get <name>— 输出某 skill 当前版本完整内容lark-cli skills get <name> --full— 含 references/templateslark-cli skills get --all— 输出全部lark-cli skills path [name]— 打印 skill 目录路径LARK_CLI_SKILLS_DIR可覆盖),永远匹配当前 CLI 版本。lark-cli skills get <domain>→ CLI 输出当前版本完整指令 → agent 用取回的内容继续。注册与内容解耦。open.feishu.cn真实安装流:把 fix(skills): add single entry skill #1432 关闭理由 2(index-driven 源下 root SKILL.md 短路不生效)作为本方案的前置验证项——stub 模式不依赖 root SKILL.md 短路目录扫描,而是依赖 CLI 自带内容输出,应能在 index-driven 安装流下生效。skills add增删一致(解决 fix(skills): add single entry skill #1432 关闭理由 3),切到 stub 模式时移除旧的全量 domain skill 安装。Why this resolves the related issues
skills get取回,触发准确率不受损(呼应 【Feature Req】Skills太多太乱,希望有一个统筹的skills,内部渐进式披露到各具体skills #1465 实测)。Prior art / references
agent-browser skills get core运行时加载skills list / get / get --full / get --all / path子命令AGENT_BROWSER_SKILLS_DIR可覆盖lark-cli skills read <domain-skill>,基础设施部分就位What I'd ask the maintainers to evaluate
lark-cli skills子命令现状(read之外是否已有get/list/path),能否直接承载 stub 模式。open.feishu.cnindex-driven 真实安装流下是否生效(fix(skills): add single entry skill #1432 关闭理由 2 的前置验证)。Context
我在 #1465 做的 GLM-5.2 小样本实测结论是"router 对触发准确率无差别、削掉子层描述会更差"——这恰好说明靠精简/自隐 description 来降上下文是有代价的,而 discovery stub 是不牺牲准确率的降上下文路径,值得官方大范围评估。