Borrowing it
Nothing to install: this file belongs to foxzool/openlark. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/foxzool/openlark/main/.agents/skills/openlark-naming/SKILL.mdgit clone --depth 1 https://github.com/foxzool/openlarkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/foxzool/openlark/openlark-naming)<a href="https://agentmods.dev/skills/foxzool/openlark/openlark-naming"><img src="https://agentmods.dev/badge/skills/foxzool/openlark/openlark-naming.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00133 | $0.03822 |
| Opus 5 | $0.00067 | $0.01911 |
| Sonnet 5 | $0.00027 | $0.00764 |
| Haiku 4.5 | $0.00013 | $0.00382 |
Grade A, and why
openlark-naming scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 168 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 alias | pub 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. 分层调用链 struct | pub 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 |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 168 lines · 133 tokens per session scan A 08addbb83171
openlark-naming is a skill published in the GitHub repository foxzool/openlark (105 stars, last pushed 4d ago), licensed Apache-2.0. It adds 133 tokens to every session and 3,822 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
lark-cli
Lark/Feishu CLI skills for Stella sessions. Covers workspace operations — calendar, docs, tasks, mail, and messenger — via the Stella-managed lark-cli tool. Stella installs the binary and injects a managed per-user OAuth token; no native CLI bootstrap is required. Always read lark-shared first for identity selection…
fastapi-common
A shared foundation for FastAPI web backends, covering cross-origin access, error handling, request logs, and consistent API responses. FastAPI is a Python framework for building web APIs.
rust-patterns
Idiomatic Rust patterns, ownership, error handling, traits, concurrency, and best practices for building safe, performant applications.
dd-code-generation
Use pup CLI for immediate Datadog operations or generate code for integration into applications.
omh-rust
This is a Hermes-native rust workflow skill.
metabot-team
Use for the MetaBot Agent Teams CLI: create and inspect durable Teams, spawn teammates, exchange messages, and manage Tasks and Runs across Sessions.