From feishu-group-meeting
Manage a Feishu/Lark group meeting schedule by pulling a docx/wiki document to Markdown, querying current presenters, rotating weekly speakers, rescheduling meeting time, and pushing updates back to Feishu. Use for group meeting speaker queries, schedule updates, Feishu sync, meeting reminders, or weekly rotation tasks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/feishu-group-meeting:feishu-sync-group-meetingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill manages a Feishu/Lark group meeting schedule stored in a Docx or Wiki document. It uses bundled Python scripts to pull the live document into a local Markdown cache, edit or rotate that cache, and push changes back to Feishu.
This skill manages a Feishu/Lark group meeting schedule stored in a Docx or Wiki document. It uses bundled Python scripts to pull the live document into a local Markdown cache, edit or rotate that cache, and push changes back to Feishu.
Before first use, configure credentials with either environment variables or a local config file.
Environment variables:
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="..."
export FEISHU_DOC_URL="https://example.feishu.cn/docx/..."
Config file locations, in priority order:
FEISHU_GROUP_MEETING_CONFIGconfig.json beside this SKILL.md~/.config/feishu-sync-group-meeting/config.json~/.feishu-sync-group-meeting/config.jsonUse config.example.json as the template. Never print or expose app_secret.
If requests is missing, run this from the skill directory:
python3 -m pip install -r requirements.txt
Run commands from this skill directory. In Claude Code, ${CLAUDE_SKILL_DIR} is this directory; in Codex, resolve relative paths from this SKILL.md.
# Pull latest Feishu document into the local Markdown cache.
python3 scripts/feishu_sync.py pull
# Print the local cache path for reading/editing.
python3 scripts/feishu_sync.py path
# Push the local Markdown cache back to Feishu.
python3 scripts/feishu_sync.py push
# Rotate once after a meeting ends.
python3 scripts/update_schedule.py
# Preview rotation without writing.
python3 scripts/update_schedule.py --dry-run
Default cache path: ~/.cache/feishu-sync-group-meeting/feishu_schedule.md.
python3 scripts/feishu_sync.py pull.python3 scripts/feishu_sync.py path.The schedule table has two independent member orders in one Markdown table:
Work Report and News.Showcase Session.Strict status markers:
| Marker | Meaning |
|---|---|
😀本周同学 | Current presenter |
🚫跳过 | Permanently skipped |
🚫跳过N次 | Skip for N more weeks |
🚫跳过0次(😀本周同学) | Skip countdown reached zero; this person presents this week |
😀已讲 | Deferred current marker; restored by the next rotation |
Meeting time line format:
⌛️暂定本周组会时间:[周X]YYYY-MM-DD HH:MM–HH:MM
Swap list format:
A同学[ ] 和 B同学[✅] 交换
[✅] means that person has completed the swapped presentation. [ ] means not yet. Delete a swap row immediately once both sides are [✅].
Trigger: the user asks who presents this week for Work Report, News, or Showcase Session.
Steps:
🚫跳过0次(😀本周同学) and 😀已讲, the 🚫跳过0次(😀本周同学) person presents this week.😀本周同学 as the official presenter.[ ]: the swap counterpart presents.[✅], counterpart [ ]: counterpart presents as repayment.[ ], counterpart [✅]: official presenter presents as repayment.Trigger: the user says the meeting ended or asks to update next week's rotation.
Only run the scripts; do not manually edit the table.
python3 scripts/feishu_sync.py pull
python3 scripts/update_schedule.py
python3 scripts/feishu_sync.py push
The rotation script handles independent left/right rotations, skip countdowns, 😀已讲, 🚫跳过0次(😀本周同学), and meeting date +7 days.
Trigger: the user asks to change the meeting date or time.
Steps:
⌛️暂定本周组会时间 line in the local cache.周X matches the actual date.Do not run the rotation script for a pure reschedule.
Trigger: the user asks to send a group meeting reminder.
Use the available Feishu/Lark messaging tool for the active environment. If the environment provides a message tool, prefer it. If messaging tools are unavailable, draft the reminder text instead of pretending it was sent.
Recommended config fields:
target_chat_id: production group chat ID.test_chat_id: test group chat ID.schedule_doc_url: human-facing schedule document URL.If the user says this is a test, send to test_chat_id; otherwise send to target_chat_id.
Reminder content should include:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub lar0129/larskill --plugin feishu-group-meeting