feishu-task-management-skill
by @owrig
Manage Feishu tasks through a local Python toolkit that always has app credentials and can optionally act as a user for task APIs when OAuth user tokens are...
clawhub install feishu-task-management-skillπ About This Skill
name: feishu-task-management description: Manage Feishu tasks through a local Python toolkit that always has app credentials and can optionally act as a user for task APIs when OAuth user tokens are available. Use when Codex needs to create, inspect, update, complete, reopen, delete, or change task members in Feishu Task, especially when member names must be resolved through a locally synced member table and alias mapping instead of ad hoc contact lookups.
Feishu Task Management
Overview
Use this skill to operate Feishu Task through the companion toolkit in feishu-task-management/toolkit/. Keep the core workflow in this file: decide the command, resolve members locally, and apply the write-safety rules without loading extra references unless the request falls into an edge case.
Core Workflow
1. Confirm the request is about Feishu task management through the local toolkit.
2. Before the first API-backed operation, make sure the toolkit is configured. If not, use:
python3 feishu-task-management/toolkit/scripts/feishu_config.py guide
3. Treat app credentials as mandatory base config. Prefer the configured user_access_token for task APIs when available, but keep contact and member-sync operations on app auth.
4. If the operation involves people, use the local member table through the toolkit. Do not perform ad hoc contact lookups.
5. Choose the narrowest task command available instead of composing generic HTTP requests.
6. For destructive or state-changing operations, inspect the current task first when practical.
7. Stop if member resolution is ambiguous or missing.
Command Routing
Member Table Maintenance
python3 feishu-task-management/toolkit/scripts/feishu_members.py sync
python3 feishu-task-management/toolkit/scripts/feishu_members.py stats
python3 feishu-task-management/toolkit/scripts/feishu_members.py resolve --query "εΌ δΈ"
python3 feishu-task-management/toolkit/scripts/feishu_members.py validate-aliasesToolkit Configuration
python3 feishu-task-management/toolkit/scripts/feishu_config.py guide
python3 feishu-task-management/toolkit/scripts/feishu_config.py set --app-id ... --app-secret ...
python3 feishu-task-management/toolkit/scripts/feishu_config.py set --app-id ... --app-secret ... --user-access-token ...
python3 feishu-task-management/toolkit/scripts/feishu_config.py show
python3 feishu-task-management/toolkit/scripts/feishu_config.py validateRead Operations
python3 feishu-task-management/toolkit/scripts/feishu_task.py get --task-guid ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py listWrite Operations
python3 feishu-task-management/toolkit/scripts/feishu_task.py create --summary ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py update --task-guid ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py complete --task-guid ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py reopen --task-guid ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py add-members --task-guid ... --member ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py remove-members --task-guid ... --member ...
python3 feishu-task-management/toolkit/scripts/feishu_task.py delete --task-guid ... --yesMember Resolution
Use local resolution only, in this order:
1. Explicit identifiers: open_id, user_id, email, mobile
2. Manual alias mapping from feishu-task-management/toolkit/data/member_aliases.json
3. Exact canonical matches on name, en_name, nickname, and email
4. Limited fuzzy matching
Apply these safety rules:
If the authorized scope only yields identifier fields without profile fields, natural-language matching depends on manual aliases. This does not change when task APIs later use a user token.
Write Safety Rules
completed_at directly.origin as create-only.start and due explicitly instead of relying on omission.Supported v1 Scope
The following are intentionally out of scope for v1:
Conditional References
Load extra context only when the request falls off the main path:
origin, completion semantics, or deferred task features.1470403.