From productivity
Sync tasks and refresh memory from your current activity. Use when pulling new assignments from your project tracker into TASKS.md, triaging stale or overdue tasks, filling memory gaps for unknown people or projects, or running a comprehensive scan to catch todos buried in chat and email.
How this skill is triggered — by the user, by Claude, or both
Slash command
/productivity:update [--comprehensive][--comprehensive]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
If you see unfamiliar placeholders or need to check which tools are connected, see CONNECTORS.md.
Keep your task list and memory current. Two modes:
--comprehensive: Deep scan chat, email, calendar, docs — flag missed todos and suggest new memoriesLark-native execution (see depth core: LARK-PATTERNS). Lark Task is the source of truth (
TASKS.mdis just a local mirror). Read withlark_task_my(project viajq); complete withlark_task_complete; resolve people withlark_contact_search(P1). Present the sync diff and any "missing tasks" as an interactive card (lark_im_card_send, P4) so the user can act inline. For a richer start-of-day sweep, delegate to themorning-briefskill; for ranking,task-prioritizer.
/productivity:update
/productivity:update --comprehensive
Read TASKS.md and memory/ directory. If they don't exist, suggest /productivity:start first.
Check for available task sources:
lark_task_my) and Lark Base trackers (lark_base_search) (if the lark MCP is available)
lark_base_search requires search_fields (the field name[s] to match on) and does not
support jq. If you don't know the field names, discover them first via
lark_api GET /open-apis/bitable/v1/apps/{base}/tables/{table}/fields, then narrow the result
with select_fields / limit instead of a jq projection.gh issue list --assignee=@meIf no sources are available, skip to Step 3.
Fetch tasks assigned to the user (open/in-progress). Compare against TASKS.md:
| External task | TASKS.md match? | Action |
|---|---|---|
| Found, not in TASKS.md | No match | Offer to add |
| Found, already in TASKS.md | Match by title (fuzzy) | Skip |
| In TASKS.md, not in external | No match | Flag as potentially stale |
| Completed externally | In Active section | Offer to mark done → lark_task_complete |
Present the diff as an interactive card (P4) and let the user decide what to add/complete. New tasks
go through lark_task_create (resolve assignee via lark_contact_search, dry_run first).
Review Active tasks in TASKS.md and flag:
Present each for triage: Mark done? Reschedule? Move to Someday?
For each task, attempt to decode all entities (people, projects, acronyms, tools, links):
Task: "Send PSR to Todd re: Phoenix blockers"
Decode:
- PSR → ✓ Pipeline Status Report (in glossary)
- Todd → ✓ Todd Martinez (in people/)
- Phoenix → ? Not in memory
Track what's fully decoded vs. what has gaps.
Present unknown terms grouped:
I found terms in your tasks I don't have context for:
1. "Phoenix" (from: "Send PSR to Todd re: Phoenix blockers")
→ What's Phoenix?
2. "Maya" (from: "sync with Maya on API design")
→ Who is Maya?
Add answers to the appropriate memory files (people/, projects/, glossary.md).
Tasks often contain richer context than memory. Extract and update:
Update complete:
- Tasks: +3 from Lark Task, 1 completed, 2 triaged
- Memory: 2 gaps filled, 1 project enriched
- All tasks decoded ✓
--comprehensive)Everything in Default Mode, plus a deep scan of recent activity.
Gather data from the lark MCP (project each with jq to control token cost, P3):
lark_im_search recent messages for commitments/action itemslark_api (no curated mail-search tool; the curated mail tools are
lark_mail_send / lark_mail_draft_create) for sent promiseslark_doc_search recently touched docslark_calendar_agenda recent + upcoming eventslark_minutes_search (participant_ids="me") → pull AI action items directly (P6)Compare activity against TASKS.md. Surface action items that aren't tracked:
## Possible Missing Tasks
From your activity, these look like todos you haven't captured:
1. From chat (Jan 18):
"I'll send the updated mockups by Friday"
→ Add to TASKS.md?
2. From meeting "Phoenix Standup" (Jan 17):
You have a recurring meeting but no Phoenix tasks active
→ Anything needed here?
3. From email (Jan 16):
"I'll review the API spec this week"
→ Add to TASKS.md?
Let user pick which to add.
Surface new entities not in memory:
## New People (not in memory)
| Name | Frequency | Context |
|------|-----------|---------|
| Maya Rodriguez | 12 mentions | design, UI reviews |
| Alex K | 8 mentions | DMs about API |
## New Projects/Topics
| Name | Frequency | Context |
|------|-----------|---------|
| Starlight | 15 mentions | planning docs, product |
## Suggested Cleanup
- **Horizon project** — No mentions in 30 days. Mark completed?
Present grouped by confidence. High-confidence items offered to add directly; low-confidence items asked about.
--comprehensive always runs interactivelynpx claudepluginhub larkcowork/lark-cowork-plugins --plugin productivityCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.