From daily-assistant
360° relationship brief before a meeting/call — aggregates IM, mail, meetings, docs, tasks for one person. Triggers "tôi sắp gặp <name>", "context với <name>", "contact 360".
How this skill is triggered — by the user, by Claude, or both
Slash command
/daily-assistant:contact-360The summary Claude sees in its skill listing — used to decide when to auto-load this skill
"I'm about to call them in 10 min — who are they to me?" Aggregates
"I'm about to call them in 10 min — who are they to me?" Aggregates every touchpoint with a person into one brief.
Verbs (the installed lark-* skills): contact +search-user
(resolve name), contact +get-user (details by --user-id),
im +messages-search, calendar +agenda, vc +search,
docs +search, task +search, base +record-search. Mail has no
search verb in raw CLI — use atomic lark-mail skill. Atomic command
shapes + token flags: connectors/LARK-RECIPES.md.
contact +search-user --query "<name>" --jq '.data.users[]|{name:.localized_name,open_id,email}' → pick
open_id (data is a dict {users,has_more}). Then
contact +get-user --user-id <open_id> --jq '.data.user' for
dept/title/manager.people.md (personal notes), priority-people.md
(VIP tier), team-roster.md, accounts.md (sales).im +messages-search --sender <open_id> --start <t-90d> --end <t> --page-size 50 --jq '.data' (peek shape — needs
search:message scope; CLI has no recipient-direction filter,
sender-only; --start/--end need a timezone offset).lark-mail skill (no raw mail search verb).vc +search --participant-ids <open_id> --start <t-90d> --end <t> --jq '.data.items[]|{id,info:.display_info}' (data
is a dict — meetings in .data.items[]). Calendar +agenda has
NO attendee filter — skip or scan agenda titles only.docs +search --query "<name>" --jq '.data' (peek shape;
needs search:docs:read scope; keyword match on name only).task +search --follower <open_id> --page-limit 5 --jq '.data.items[]|{summary,due:.due_at}' (data is a dict —
tasks in .data.items[]; also try --assignee).base +record-search --base-token <t> --table-id <accounts> --json '{"keyword":"<name>","search_fields":["Owner"]}'.👤 CONTACT 360 — <Name> · <Title> · <Dept> · Manager: <Manager>
📅 LAST INTERACTION — <date>: <type> · "<topic>"
🔄 RECURRING THEMES (90d) — <theme>: <N> · ...
⏳ OPEN THREADS — unanswered mail / meeting w/o action / stale task
✅ PAST DECISIONS (90d) — <date>: <summary> (source)
📌 COMMITMENTS — you owe / they owe
🧠 SUGGESTED OPENERS (3) — each anchored to a real thread
⚠️ NOTES FROM people.md — <if exists>
Action sau gặp: update people.md / tạo task follow-up / log decision
memory/people.md may be appended
(after explicit confirm) — not a Lark mutation.+search-user >1 hit) → prompt user to pick.morning-brief / weekly-review.Required: do-not.md. Recommended: people.md, priority-people.md,
team-roster.md, accounts.md (sales).
On-demand or auto from meeting-prep (1:1 / external attendee) and
deal-update (pre-call). After meeting, offers to append a 1-2 line
note to memory/people.md — closes the "remember context" loop.
npx claudepluginhub larkcowork/lark-cowork-plugins --plugin daily-assistantCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.