Lark Calendar Litiao

WarnAudited by ClawScan on May 10, 2026.

Overview

This looks like a real Lark calendar/task integration, but it needs review because it can mutate Lark data, uses undeclared app credentials, auto-adds a hard-coded attendee, fetches broad employee directory data, and has metadata/default-calendar mismatches.

Review this skill before installing. Use only a least-privilege Lark app, verify the actual default calendar ID, understand that Boyang is automatically added to every new event, and confirm whether broad employee directory access and any messaging capability are acceptable for your workspace.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Installing users may not realize they must provide Lark app credentials that can authorize organization-level actions.

Why it was flagged

The skill requires Lark app credentials and exchanges them for a tenant access token, but the registry metadata declares no required env vars or primary credential. That under-declares the credential boundary for a skill that can create, update, and delete Lark events and tasks.

Skill content
const APP_ID = process.env.FEISHU_APP_ID;
const APP_SECRET = process.env.FEISHU_APP_SECRET;
...
body: JSON.stringify({
  app_id: APP_ID,
  app_secret: APP_SECRET
})
Recommendation

Declare FEISHU_APP_ID and FEISHU_APP_SECRET in metadata, document the exact Lark scopes required, and advise users to use a least-privilege app limited to the intended calendars/tasks.

What this means

Events could be created, updated, or deleted in the wrong Lark calendar if the user relies on the documented default.

Why it was flagged

The code's default calendar ID differs from SKILL.md's stated default calendar ID, so user-directed create/update/delete operations may affect a different calendar than the user expects.

Skill content
export const DEFAULT_CALENDAR_ID = 'feishu.cn_aotpypXdLWDwgRr62Y25ie@group.calendar.feishu.cn';
Recommendation

Make the documented and coded default calendar match, or require the user to explicitly provide a calendar ID for mutating operations.

What this means

A hard-coded person may receive invitations or see event details even when the user did not explicitly name them.

Why it was flagged

Every created calendar event automatically includes a hard-coded user, and the code does not show an opt-out. SKILL.md discloses the rule, but it is still a high-impact automatic sharing action.

Skill content
// Always include Boyang
const finalAttendeeIds = ensureBoyangIncluded(attendeeIds);
Recommendation

Require explicit user confirmation for automatic attendees, provide an opt-out flag, and clearly show the final attendee list before creating an event.

What this means

The skill may read and temporarily retain more employee directory information than users expect.

Why it was flagged

For name resolution, the skill fetches the root department and stores fields including email, mobile number, department IDs, and open_id in an in-memory cache. That is broader personal-data access than simple name-to-user_id resolution.

Skill content
department_id: '0', // Root department = all employees
...
email: user.email,
mobile: user.mobile,
department_ids: user.department_ids,
open_id: user.open_id
Recommendation

Limit contact lookups to the specific requested names, store only user_id and display name, and document any required contact-directory permissions.

What this means

If used by an agent or developer, the skill could send Lark messages even though users installed it for calendar and task operations.

Why it was flagged

The library exposes a Lark IM send-message function that is not described in the skill's calendar/task purpose or quick reference. It is not called by the included scripts, but it broadens available account actions if invoked programmatically.

Skill content
export async function sendMessage(receiveId, receiveIdType, content) {
  return larkApi('POST', '/im/v1/messages', {
Recommendation

Remove unused messaging helpers or explicitly document them, including required scopes and when the agent may use them.

What this means

Users have less assurance that the packaged artifact corresponds exactly to the registry listing they are installing.

Why it was flagged

The embedded metadata owner and slug differ from the registry-provided owner and slug for this evaluation. This may be a packaging or republishing issue, but it reduces provenance clarity for a skill that needs Lark credentials.

Skill content
"ownerId": "kn712r5njw97kym7r3qne0y6hx80asrk",
"slug": "lark-calendar"
Recommendation

Republish with consistent metadata and provide a source repository or provenance information.