Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add yokingma/weclaws --skill lark-calendargit clone --depth 1 https://github.com/yokingma/weclawsWrote 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/yokingma/weclaws/lark-calendar)<a href="https://agentmods.dev/skills/yokingma/weclaws/lark-calendar"><img src="https://agentmods.dev/badge/skills/yokingma/weclaws/lark-calendar/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yokingma/weclaws/lark-calendar"><img src="https://agentmods.dev/badge/skills/yokingma/weclaws/lark-calendar.svg" alt="Reviewed on agentmods" width="80" 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.00193 | $0.03815 |
| Opus 5 | $0.00097 | $0.01907 |
| Sonnet 5 | $0.00039 | $0.00763 |
| Haiku 4.5 | $0.00019 | $0.00381 |
Grade A, and why
lark-calendar 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 10d 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.
This is a copy
92% identical to lark-calendar — 1 line differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
calendar (v4)
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
CRITICAL — 所有的 Shortcuts 在执行之前,务必先使用 Read 工具读取其对应的说明文档,禁止直接盲目调用命令。
CRITICAL — 凡涉及【预约日程/会议】或【查询/搜索会议室】,第一步 MUST 强制使用 Read 工具读取 references/lark-calendar-schedule-meeting.md。禁止跳过此步直接调用 API 或 Shortcut!
CRITICAL — 术语约束:用户日常表达中常说的“帮我约个日历”、“查一下今天的日历”等,其实际意图通常是针对 日程(Event) 的创建或查询,而非操作 日历(Calendar) 容器本身。请自动将口语化的“日历”意图映射为“日程”操作(如 +create, +agenda)。
CRITICAL — 会议与日程的意图路由:
- 查询过去时间的会议:如果用户明确查询过去时间的会议(如“昨天的会议”、“上周的会议”),优先使用
../lark-vc/SKILL.md搜索会议记录。因为会议数据不仅包含从日程发起的视频会议,还包含即时会议,仅查询日程数据会导致结果不全。 - 查询日历/日程或未来时间的会议:如果用户明确表达的是“日历”、“日程”,或者涉及未来时间的安排,则属于本技能(lark-calendar)的业务域,请继续使用本技能处理。 CRITICAL — 任务类型分流:处理“预约/改约日程、添加/移除参会人、添加/更换会议室、调整时间”时,必须先判断用户是在“新建日程”还是“编辑已有日程”。
- 编辑已有日程的强信号:用户明确提到某个已存在的日程锚点(如标题、时间段、
这个日程、这场会)并表达修改动作(如“添加”“移除”“改到”“换会议室”“调整时间”)。这类请求默认走编辑已有日程,绝不能直接按新建处理。 - 编辑已有日程的前置步骤:一旦判定为编辑,MUST 先定位目标日程或具体实例的
event_id,再继续后续流程。若是重复性日程,MUST 先定位到对应实例的event_id。 - 新建日程:只有当用户表达的是“新约一个会/创建一个日程/安排一次会议”等新增意图,且没有指向某个既有日程的修改动作时,才进入新建流程。
CRITICAL — 验证与同步延迟:在涉及删除日程(delete)、修改日程(patch)或者涉及添加移除参与人/会议室之后,如果需要进行二次查询验证操作结果,MUST 等待至少 2 秒后再进行查询,以防止因数据同步延迟导致查不到最新数据。注意:不要向用户提及你等待了这 2 秒钟的事情。
CRITICAL — 重复性日程的实例操作:目前已经完全具备对重复性日程的某个具体实例进行操作的能力(例如:编辑某个实例、删除某个实例、为某个实例添加/删除参与人、为某个实例添加/移除会议室)。只要在对应的操作中传递对应实例的 event_id 即可。因此,MUST 先定位到对应的那次实例的 event_id(可通过 events search_event 搜索日程,或 +agenda 查看对应时间范围的日程等相关查询获取),绝对禁止直接使用原重复性日程的 event_id 进行操作。
时间与日期推断规范: 为确保准确性,在涉及时间推断时,请严格遵循以下规则:
- 星期的定义:周一是一周的第一天,周日是一周的最后一天。计算
下周一等相对日期时,务必基于当前真实日期和星期基准进行推算,避免算错日期。 - 一天的范围:当用户提到
明天、今天等泛指某一天时,时间范围应默认覆盖整天时间范围。切勿自行缩减查询范围,以免遗漏晚上的时间安排。 - 历史时间约束:不能预约已经完全过去的时间。唯一的例外情况是“跨越当前时间”的日程,即日程的开始时间在过去,但结束时间在未来。
核心场景
1. 预约新日程/会议、编辑已有日程、查询/搜索可用会议室
BLOCKING REQUIREMENT (阻塞性要求): 只要用户的意图包含“预约日程/会议”或“查询/搜索可用会议室”,你必须立即停止其他思考,优先使用 Read 工具完整读取 references/lark-calendar-schedule-meeting.md!未读取该文件前,绝对禁止执行任何日程创建或会议室查询操作。
CRITICAL: 必须严格按照上述文档中定义的工作流(Workflow)执行后续操作。处理该场景时,默认做“智能助理”,不要做“表单填写机”。能补全的默认值先补全,只有在时间冲突、结果无法唯一确定、时间语义存在歧义时才主动追问。
CRITICAL: 执行顺序必须固定为:先判断任务类型(新建/编辑);若为编辑先定位目标日程 event_id;再补默认值或继承已定位日程的已知信息;再判断时间是否明确;最后进入“明确时间”或“模糊时间/无时间信息”分支。不要跳步。
CRITICAL: 明确时间且需要会议室时,先基于最终确定的时间块执行 +room-find,再按需执行 +freebusy;模糊时间或无时间信息时,先 +suggestion,如需会议室再批量 +room-find。如果是编辑已有日程且不改时间,只新增会议室,则必须基于已定位日程的原始时间执行 +room-find,且最终落地时默认保留已存在的会议室;只有用户明确表达“更换会议室”或“移除会议室”时,才删除原会议室。
CRITICAL: 当用户说“查会议室”“找会议室”“搜可用会议室”或“推荐常用会议室”时,默认是查会议室可用性,不是查会议室资源名录,更严禁拉取历史日程做统计分析。完整规则以 lark-calendar-schedule-meeting.md 为准。
BLOCKING REQUIREMENT: 即使用户的核心诉求是“查会议室”,只要【没有提供明确的起止时间】,绝对禁止直接调用 +room-find!必须先进入【无时间/模糊时间】分支,调用 +suggestion 拿到候选时间块后,再将时间块传给 +room-find。
BLOCKING REQUIREMENT: 只要面临时间方案或会议室方案的选择(如模糊时间、无时间或需要会议室),在最终执行创建新日程或更新既有日程之前,必须先向用户展示候选方案并等待用户明确确认。绝对禁止擅自替用户做决定。
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/lark-calendar-agenda.md 2.3 KB
- references/lark-calendar-create.md 5.0 KB
- references/lark-calendar-freebusy.md 3.8 KB
- references/lark-calendar-room-find.md 9.1 KB
- references/lark-calendar-rsvp.md 1.3 KB
- references/lark-calendar-schedule-meeting.md 18 KB
- references/lark-calendar-suggestion.md 7.0 KB
- references/lark-calendar-update.md 6.3 KB
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.
- 10d ago First seen · 155 lines · 193 tokens per session scan A 1b45eab3d084
lark-calendar is a skill published in the GitHub repository yokingma/weclaws (38 stars, last pushed 3mo ago), licensed MIT. It adds 193 tokens to every session and 3,815 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. It is 92% identical to lark-calendar, differing in 1 line, and is treated as a copy.
Other skills, from other repositories
md-hive-sync
Munder Difflin hive sync — runs the start-of-task hive protocol steps: reads memory.md, checks inbox/ for new messages, and reminds you to record durable facts in memory.md and write coordination files before ending. Use when asked to "sync with the hive", "check my inbox", "hive status", or "hive sync". Proactively…
parallel-feature-development
Coordinate parallel feature development with file ownership strategies, conflict avoidance rules, and integration patterns for multi-agent implementation. Use this skill when decomposing a large feature into independent work streams, when two or more agents need to implement different layers of the same system…
bazel-build-optimization
Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.
track-management
Use this skill when creating, managing, or working with Conductor tracks - the logical work units for features, bugs, and refactors. Applies to spec.md, plan.md, and track lifecycle operations.
wxjava-api-contributor
A contributor guide for adding or maintaining official WeChat API support in WxJava, a Java software development kit. It covers services, request and response data objects, data conversion, HTTP handling, starter configuration, and regression tests.
last30Days
Resolve "last30Days" to a concrete ISO date range relative to your run time — a rolling 30-day window ending today. Returns inclusive civil dates plus exact UTC instants so you have temporal context without computing dates by hand. Read-only: no writes, no network. Use before a "last 30 days" / trailing-month task…