Agent skill

Openlark Naming

by foxzool in foxzool/openlark

OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…

Apache-2.0Auto-check: notesProductivity & Automation

Install Openlark Naming

skills CLI
$ npx skills add foxzool/openlark --skill openlark-naming -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install foxzool/openlark openlark-naming --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/foxzool/openlark.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/openlark-naming .claude/skills/openlark-naming && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
openlark-naming
GitHub stars
106
Token cost
~2.1k tokens
SKILL.md length
535 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…

  • Works in 9 steps: 快速决策:先选类型职责,再命名(必须) → *Client 命名规则 → *Service 命名规则 → …
  • Tasks that involve Messaging and chat bots
  • SKILL.md covers 🧭 技能路由指南, 0) 快速决策:先选类型职责,再命名(必须), 1) *Client 命名规则 and 2) *Service 命名规则, plus 7 more sections
  • Calls rg, just and cargo

What it does

Openlark Naming is an agent skill from foxzool/openlark. OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及 Client/Service/Resource 调用风格不一致的问题。触发关键词:命名规范、Client vs Service、Resource、重命名、V1Service 版本层、meta 调用链、公开 API

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering Messaging and chat bots. It works with Rust and Feishu (Lark). The repository describes itself as: 飞书开放平台的非官方 Rust SDK,支持自定义机器人、长连接机器人、云文档、飞书卡片、消息、群组等 API 调用。 The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Messaging and chat bots

Example prompts

  • “/openlark-naming”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Edit

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. 快速决策:先选类型职责,再命名(必须)
  2. *Client 命名规则
  3. *Service 命名规则
  4. 版本层命名(强制:避免同名灾难)
  5. *Resource 命名规则(meta 调用链中间层)
  6. *Request vs *RequestBuilder(风格统一,禁止混用)
  7. 名字必须与路径/模块语义一致(避免“路径-名字”错配)
  8. 已治理案例与现存反例
  9. 改名 review 清单(提交前逐条过一遍)

What it can do on your machine

Read from SKILL.md and the folder at commit 6128d6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • rg
    • just
    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Openlark Naming loads about 2.1k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 535 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Edit

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from foxzool/openlark at commit 6128d6d, republished under its Apache-2.0 licence (© foxzool). 535 words, ~2,065 tokens.

Download SKILL.mdSave it as .claude/skills/openlark-naming/SKILL.md (or your agent's skills folder).
name
openlark-naming
description
OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 *Service 同名/语义错配/V{N}Service 版本层错位、*Resource 与 *Service 同类型两名、以及 Client/Service/Resource 调用风格不一致的问题。触发关键词:命名规范、Client vs Service、Resource、重命名、V1Service 版本层、meta 调用链、公开 API
allowed-tools
Bash, Read, Grep, Glob, Edit
argument-hint
[module|type-name|path]

OpenLark 命名规范(Client / Service / Resource / Request / Builder)

🧭 技能路由指南

本技能适用场景:

  • 你在设计/调整对外公开类型名(pub struct / pub type / re-export / prelude)
  • 你在设计 client.xxx.v1.yyy.zzz 这类 meta 调用链
  • 你发现 *Service 同名、语义混乱、调用方式不一致,想系统性收敛

其他技能:

  • 项目级规范体检(架构/API/导出/校验一体)→ Skill(openlark-code-standards)
  • 设计审查(更广)→ Skill(openlark-design-review)
  • 新增/重构单个 API(落盘/端点/Builder 模板)→ Skill(openlark-api)
关键词触发映射
  • 命名规范、Client vs Service、Resource、重命名、meta 调用链、公开 API → openlark-naming
  • 代码规范、规范检查、风格一致性、体检 → openlark-code-standards
  • 架构设计、public API、收敛方案、feature gating、兼容策略 → openlark-design-review
  • 新增 API、重构 API、Builder、Request/Response、mod.rs 导出 → openlark-api
  • validate、必填校验、validate_required、空白字符串、校验聚合 → openlark-validation-style
双向跳转规则
  • 若命名问题已扩展为入口/范式收敛问题,转 openlark-design-review。
  • 若命名调整涉及具体 API 文件实现与导出补齐,转 openlark-api。
  • 若需要先确认全仓规则基线,再做命名调整,先跑 openlark-code-standards。

0) 快速决策:先选类型职责,再命名(必须)

  • 顶层入口/门面(面向用户):持有 Config(或 Arc<Config>),组织调用链与透传配置 → *Client
  • 业务能力集合(可执行):对外暴露一组 API,承接/实现通用 trait(如 Service、ExecutableBuilder)→ *Service
  • 资源节点/命名空间(只组织层级):处在 meta 调用链的中间层,主要做字段分组与 config 透传 → *Resource
  • 版本层对象:必须把版本写进类型名 → *V1Service / *V2Service(或 *V1Client 视职责而定)
  • 单 endpoint 请求类型:*Request 或 *RequestBuilder(同一 crate/模块树二选一并保持一致)

约束:不要用 *Service 去命名“仅做层级组织/透传 config 的节点”。

1) *Client 命名规则

  • 语义:入口 / 门面 / 组合根;类型名要让读者知道“从这里开始调用”。
  • 典型结构:
    • 持有 Arc<Config>
    • 暴露 pub xxx: XxxResource / pub v1: XxxV1Client 之类字段链
    • 很少直接实现业务方法(除非规模很小且能保持一致)
  • 建议放置:common/chain.rs(避免被 API 实现校验脚本当成 endpoint 实现文件)
两种合法实现(XxxClient 的落盘方式)

每个业务 crate 必须导出一个 XxxClient 类型作为主入口,有两种合法实现方式,按 crate 规模/复杂度二选一:

方式写法适用现码实例(核实)
A. 单 facade type aliaspub type XxxClient = XxxService;(写在 lib.rs)crate 规模小、内部仅一个 Service、无需多层链式入口crates/openlark-workflow/src/lib.rs:121 pub type WorkflowClient = WorkflowService;;同类还有 bot/application/platform/mail/helpdesk/analytics/user 等
B. 分层调用链 structpub struct XxxClient { ... }(写在 common/chain.rs,经 lib.rs re-export)crate 含多 bizTag/project、需要 client.xxx.v1.yyy 链式入口crates/openlark-docs/src/common/chain.rs → lib.rs:125 DocsClient;同类有 cardkit/communication/meeting/ai

权威映射表:各 crate 当前采用 A 还是 B、内部类型与导出名对照,以 docs/CLIENT_NAMING_CONVENTION.md 的「当前映射」表为准;新增/切换实现方式时同步更新该表,勿仅凭记忆判断。

2) *Service 命名规则

  • 语义:能力载体;需要能回答“这个类型里提供了一组可执行 API/操作”。
  • 若引入通用 trait(例如 openlark_core::trait_system::Service / ExecutableBuilder),优先在 *Service 层承接,保证可观测性(service_name/version)一致。

3) 版本层命名(强制:避免同名灾难)

  • 版本对象必须显式带版本号:*V1Service / *V2Service(或 *V1Client,按下方双轨约定选择)
  • 禁止:外层 DocsService,内层 v1::DocsService 也叫 DocsService
    • 会导致 use 歧义、re-export 冲突、文档示例难以写清
双轨约定(执行 Service 侧 vs chain.rs facade 侧)

同一个版本层在 crate 内会同时出现两个名字,分别承担不同职责,二者都必须带版本号且语义不混:

侧命名职责典型位置(现码核实)
执行 Service 侧*V{N}Service能力载体,承接 trait(Service/ExecutableBuilder),提供一组可执行 APIcrates/openlark-cardkit/src/service.rs:27 返回 CardkitV1Service;crates/openlark-meeting/src/calendar/service.rs:26 定义 CalendarV4Service
chain.rs facade 侧*V{N}Client门面/链式入口节点,持有 Arc<Config> + 暴露资源字段链crates/openlark-cardkit/src/common/chain.rs:37 pub struct CardkitV1Client
  • 两层之间由 facade 构造并返回 Service(如 service.rs 的 v1() 返回 CardkitV1Service)
  • 命名上务必成对出现:CardkitV1Client(facade)↔ CardkitV1Service(执行),版本号一致,不可一侧带版本号、另一侧不带

4) *Resource 命名规则(meta 调用链中间层)

  • 语义:资源节点/命名空间,主要职责是组织层级与透传 config
  • 参考(正例):openlark-cardkit 的 CardResource / CardElementResource
  • 反例:把所有中间层都叫 *Service,最终变成“同名泛滥 + 读者不知道哪里能 execute”

5) *Request vs *RequestBuilder(风格统一,禁止混用)

在同一个 crate(至少同一业务域目录树)里二选一:

A. Builder 风格(推荐:可统一 execute_with_options)
  • XxxRequestBuilder:负责参数收集与构建
  • execute(&XxxService) / execute_with_options(&XxxService, ...):统一执行入口
B. Self-contained Request 风格(可行但要全局一致)
  • XxxRequest::new(config):请求对象持有 Config
  • .execute() / .execute_with_options(option):无需传 service

禁止:同一层级里一部分 API 需要 execute(&service),另一部分是 .new(config).execute(),会显著增加使用心智与封装成本。

6) 名字必须与路径/模块语义一致(避免“路径-名字”错配)

  • 模块叫 doc,类型不要叫 DocsService
  • 模块叫 permission,类型不要叫 DriveService
  • 类型名应能让读者大致推断它在哪个 bizTag/project/version/resource 下(至少不会“指向错误模块”)
Show full SKILL.md (240 more words)Show less

6.5) 事件/回调类(P2)命名与归属

事件(event)、回调(callback)、webhook 推送这类被动接收能力,命名与归属规则与主动调用的业务 API 不同:

  • 独立 P2 crate,不进统一门面:webhook/event 类能力放在独立 crate(openlark-webhook),不注册进 openlark-client 的 ServiceRegistry 统一门面。
    • 现码核实:openlark-webhook 是独立 crate,其入口 WebhookClient 由 crates/openlark-webhook/src/lib.rs:60 re-export(pub use robot::v1::client::WebhookClient;);在 crates/openlark-client/src/ 下搜索 webhook 无任何注册项。
  • 命名:沿用 *Client 作为该 crate 的对外入口(如 WebhookClient),但不要求与 openlark-client::Client 形成 client.xxx 链式段,因为它不属于主动 API 调用链。
  • 构造差异:webhook 类常不需要 Config/app_id,构造可能为 WebhookClient::new()(无参)或仅传 webhook URL/secret,与业务 *Client::new(config) 不同;命名上仍叫 *Client,但归属与生命周期独立。
  • 判断要点:新增一个“接收推送/回调”的能力时,优先问“它是否被动触发?”——是,则归独立 P2 crate,不要塞进 openlark-client。

7) 已治理案例与现存反例

7.1 已治理:openlark-docs 的 DocsService 重名问题

历史问题:openlark-docs 曾出现多处 DocsService 同名但语义不同(ccm::docs 入口、ccm::docs::v1 版本层、ccm::doc 模块错配),是本技能最初触发的典型案例。

治理结论(已落地,作为同类问题的参考样板):

  • 全 crate 统一以 DocsClient 作为唯一对外入口,prelude 注释明确记载:
    • crates/openlark-docs/src/prelude.rs:16 — // 已移除 Service 的 prelude 导出,统一使用 DocsClient 作为唯一入口
  • DocsClient 由分层调用链实现,定义于 crates/openlark-docs/src/common/chain.rs,经 crates/openlark-docs/src/lib.rs:125 re-export(pub use common::chain::DocsClient;)
  • *Service 类型(CcmService/BaseService/BitableService 等)保留为内部执行层,不再进 prelude,仅在需要时通过完整路径访问
  • 启示:当某 crate 的 *Service 泛名泛滥、re-export 冲突难收敛时,优先收敛为单一 *Client 门面 + 内部 Service 分层,而非逐个改名 *Service

现码核实:上述 prelude.rs:16 与 lib.rs:125 的 file:line 均有效;旧的 ccm/docs/mod.rs:8、ccm/docs/v1/mod.rs:25、ccm/doc/mod.rs:65 三处引用已全部失效,勿再引用。

7.2 现存反例:同一类型同时挂两个名字(Resource + Service)

现码中仍存在“同一结构体同时暴露 *Resource 与 *Service 两个名字”的兼容残留,是典型的待收敛反例:

  • crates/openlark-cardkit/src/cardkit/cardkit/v1/card/element/mod.rs:47
    rust
    /// 兼容历史命名:card.element 服务
    pub type CardElementService = CardElementResource;
    • 真实结构体是 CardElementResource(mod.rs:42,资源节点语义),却又 pub type 出一个 CardElementService 别名。
    • 问题:违反 §0/§4 的职责-命名对应(资源节点不应叫 *Service),造成“读者不知道哪里能 execute”的同名泛滥;别名仅为兼容历史调用而存在。
    • 收敛方向:评估调用方迁移后移除 CardElementService 别名,统一只保留 CardElementResource。

排查方法:rg -n "pub type .*Service = .*Resource" crates/ 可一次性找出所有此类“同类型两名”残留。

8) 改名 review 清单(提交前逐条过一遍)

  • 目录/模块路径是否能从类型名推断(至少到 bizTag/project/version/resource)
  • prelude/re-export 是否引入同名冲突(尤其是 *Service 这种泛名;已治理的 DocsService 勿再复现)
  • *Client / *Service / *Resource 的职责是否清晰,调用方式是否一致
  • 版本层是否统一采用 *V{N}Service(或 *V{N}Client),避免重复 *Service;facade 侧 *V{N}Client 与执行侧 *V{N}Service 版本号是否成对一致
  • 同一类型是否同时挂了 *Resource 与 *Service 两个名字(rg "pub type .*Service = .*Resource" 应无新增)
  • 事件/回调类是否误被塞进 openlark-client 门面(webhook/event 应在独立 P2 crate)
  • 改名后跑 just lint:等价于 cargo clippy --workspace --all-targets --all-features -- -Dwarnings -A missing_docs(justfile:14),务必带 --all-targets 以覆盖 examples/tests/benches,确保改名未漏掉非 lib 目标
  • 移动/新建 example 时补 [[example]] required-features:根 Cargo.toml 每个 [[example]] 需声明所依赖的 feature(如 required-features = ["communication", "websocket"],见 Cargo.toml:248+);example 引用的类型若位于 feature-gated 模块,缺声明会导致 --all-features 之外编译失败
  • 测试文件保持 //! 在 #![cfg(feature)] 之上:契约测试/集成测试文件开头顺序固定为「文件级文档注释 //! 在前、#![cfg(feature = "...")] 属性在后」,再 use(正例:crates/openlark-client/tests/docs_feature_contract.rs:1-6);改名时勿颠倒顺序,否则 inner attribute 报错

© foxzool, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/openlark-naming of foxzool/openlark.

Open the folder on GitHubat commit 6128d6d

Compare with similar skills

Openlark Naming next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Openlark Naming compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openlark Naming this skillfoxzool/openlark106—~2.1kAutomated safety check: NotesApache-2.0
Feishu Docopenclaw/openclaw392k—~516Automated safety check: PassMIT
Claude To Imop7418/Claude-to-IM-skill2.9k—~3.4kAutomated safety check: NotesMIT
Feishu Docraucvr/Group-Goki1123 repos~592Automated safety check: PassMIT
Feishu BridgeAlexAnys/feishu-openclaw3171 repos~615Automated safety check: PassNone
Content CollectorvigorX777/content-collector-skill240—~2kAutomated safety check: PassNone

Similar skills

  • Feishu Doc

    openclaw/openclaw

    Feishu document read/write workflows. An agent skill from openclaw/openclaw.

    392k GitHub stars~516 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Claude To Im

    op7418/Claude-to-IM-skill

    Bridge THIS Claude Code or Codex session to Telegram, Discord, Feishu/Lark, QQ, or WeChat so the user can chat with Claude from their phone.

    2.9k GitHub stars~3.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check: notes
  • Feishu Doc

    raucvr/Group-Goki

    Feishu document read/write operations. An agent skill from raucvr/Group-Goki.

    112 GitHub starsUsed in 3 repos~592 tokens
    Productivity & AutomationAuto-check passed
  • Feishu Bridge

    AlexAnys/feishu-openclaw

    Connect a Feishu (Lark) bot to Clawdbot via WebSocket long-connection.

    317 GitHub starsUsed in 1 repo~615 tokens
    Productivity & AutomationAuto-check passed
  • Content Collector

    vigorX777/content-collector-skill

    Collect social media content (X/Twitter, WeChat, Jike, Reddit, etc.) into Feishu bitable.

    240 GitHub stars~2k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Feishu Rich Card Sender

    xjtulyc/MedgeClaw

    Sends interactive Feishu group-chat cards that mix markdown text with uploaded chart or diagram images, for progress updates and analysis results.

    617 GitHub starsUsed in 1 repo~734 tokens
    Productivity & AutomationAuto-check: notes

More from foxzool/openlark

All 8 skills in this repo
  • Verify Openlark

    foxzool/openlark

    Prove OpenLark (Feishu/Lark Rust SDK) changes the way a maintainer does — cargo build/test, public examples, API coverage and field-verify harnesses.

    106 GitHub stars~1.8k tokensUpdated 6 days ago
    Auto-check passed
  • Openlark API

    foxzool/openlark

    OpenLark 项目 API 接口实现规范(速查)。用于添加/重构飞书开放平台 API:确定落盘路径、实现 Body/Response + Builder(Request)、对齐 endpoints 常量/enum、补齐 mod.rs 导出,并明确"调用服务端 API"的方法签名/RequestOption 传递约定。触发关键词:API 接口、API 文件、飞书 API、添加…

    106 GitHub stars~3k tokensUpdated 6 days ago
    Auto-check: notes
  • OpenLark API 字段核对技能。用于新增/重构飞书 API 后,核对 Rust 实现的请求体/响应体字段是否与飞书官方文档一致。通过 playwright 渲染飞书 SPA 文档页面,提取真实的请求/响应字段定义,对比代码实现找出不符项。触发关键词:字段核对、字段验证、字段不符、文档核对、核对请求字段、核对响应字段、飞书文档字段、推断字段、user 级接口、用户级接口字段

    106 GitHub stars~2.3k tokensUpdated 6 days ago
    Auto-check: notes
  • Openlark Code Standards

    foxzool/openlark

    OpenLark 项目代码规范检查技能。用于快速审查仓库内的架构一致性、API 实现套路、参数校验、命名与导出规范,并输出可执行检查清单与证据路径。Triggers: code review / consistency check / architecture audit / 规范检查 / 风格一致性 / 体检 / 对齐约定。项目锚点见 AGENTS.mdCONVENTIONS 与…

    106 GitHub stars~1.8k tokensUpdated 6 days ago
    Auto-check: notes
  • Openlark Design Review

    foxzool/openlark

    OpenLark Rust SDK 的代码设计/公共 API 规范审查技能(面向 crate/模块)。用于系统化检查入口设计、feature gating、Request/Service/Builder 一致性、端点体系、Config/错误处理、导出与文档同步、测试与告警控制,并输出按优先级排序的整改清单与可落地改造方案。触发关键词:设计审查、crate 设计、API 设计、public…

    106 GitHub stars~2.1k tokensUpdated 6 days ago
    Auto-check: notes
  • Openlark API Validation

    foxzool/openlark

    OpenLark API 覆盖率验证技能。用于验证各 crate 的 API 实现数量与覆盖率,基于 tools/validateapis.py 脚本和 apilistexport.csv 对比实际代码实现。触发关键词:API 验证、API 覆盖率、验证 API 数量、检查 API 实现、API 统计

    106 GitHub stars~2k tokensUpdated 6 days ago
    Auto-check: notes

Questions about Openlark Naming

What does Openlark Naming do?

OpenLark Rust SDK 命名与对外 API 表达规范(Client/Service/Resource/Request/Builder)。用于新增/重构公开类型、设计 meta 调用链、调整模块导出与 prelude、或排查 Service 同名/语义错配/V{N}Service 版本层错位、Resource 与 Service 同类型两名、以及…. Openlark Naming is an agent skill from foxzool/openlark.

When should I use Openlark Naming?

Openlark Naming fits situations like: tasks that involve Messaging and chat bots.

How do I install Openlark Naming in Claude Code?

Run `npx skills add foxzool/openlark --skill openlark-naming -a claude-code`. Or copy the skill folder (.agents/skills/openlark-naming in foxzool/openlark) into .claude/skills/openlark-naming in your project. Claude Code loads it when a task matches its description.

How do I install Openlark Naming in Codex?

Run `npx skills add foxzool/openlark --skill openlark-naming -a codex`. Or copy the skill folder (.agents/skills/openlark-naming in foxzool/openlark) into .agents/skills/openlark-naming in your project. Codex loads it when a task matches its description.

Can I use Openlark Naming in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add foxzool/openlark --skill openlark-naming -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openlark-naming, .gemini/skills/openlark-naming, .github/skills/openlark-naming and .opencode/skills/openlark-naming in your project.

What does Openlark Naming need to run?

Going by SKILL.md and its folder, Openlark Naming needs the command-line tools its instructions call (rg, just and cargo). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit.

Does Openlark Naming access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Openlark Naming safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Openlark Naming use?

Openlark Naming is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openlark Naming use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Openlark Naming?

Skills that share tags, products or a category with Openlark Naming: Feishu Doc (openclaw/openclaw, 392k stars), Claude To Im (op7418/Claude-to-IM-skill, 2.9k stars), Feishu Doc (raucvr/Group-Goki, 112 stars) and Feishu Bridge (AlexAnys/feishu-openclaw, 317 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openlark Naming?

foxzool (a GitHub user) maintains it in foxzool/openlark, which has 106 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 3, 2026.

Source: foxzool/openlark on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.