| name | client-kickoff |
| description | Turns a project/engagement deck into a ready-to-run client kickoff. Use when the user says "set up the kickoff", "process this project deck", "plan the kickoff from this deck", "new client engagement", "kick off this project", or attaches an engagement/SOW deck and wants it actioned. Runs in two gated phases: (1) extract project summary, deliverables/tasks, and an attendee list with directory-resolved emails — show for review, schedule/send nothing; (2) after the user confirms attendees, find a slot, build a time-boxed agenda, put it in a Teams invite + a OneDrive Word doc, and send a new-assignment intake email to info@digiwijs.nl — each item shown for explicit approval before it executes. Do NOT use for internal team standups, plain "schedule a meeting" requests with no deck (use schedule-meeting), or generic document summaries (use the pdf/pptx readers). |
| cowork | {"category":"productivity","icon":"Flag"} |
Client Kickoff
Convert an engagement deck into a kickoff meeting, agenda, Word doc, and an
intake email. Two phases, each gated by user approval. Never fabricate
people, dates, deliverables, rates, or emails — extract only what the deck
contains and resolve the rest with tools.
Phase 1 — Analyze (read-only)
Trigger: user attaches/points to a project deck and wants a kickoff.
- Locate the deck. Check
input/ first (Glob input/**/*), then grounding/.
If nothing is attached, say so plainly and ask for the file — do not invent
contents.
- Read it fully (pptx/pdf/docx readers as appropriate).
- Extract and show three blocks:
- Project summary: client/project name, overall goal, scope.
- Deliverables & tasks: deliverables, milestones, workstreams, tasks.
- Attendee list: every person named (with role/stakeholder context).
Resolve each against the directory with
SearchPeople → GetUserDetails;
show their email. List anyone you cannot resolve in a separate
"Unresolved" group. Never guess or construct an email.
- Gate:
- If the deck names no people, ask (via
AskUserQuestion) who the
kickoff attendees should be.
- For each unresolved person, ask the user to confirm their email.
- Stop. Do not schedule, draft, or send anything. End Phase 1 by presenting:
(1) project summary, (2) deliverable/task list, (3) attendee list.
Phase 2 — Execute (only after the user confirms attendees)
Four outputs. Show the invite, agenda, Word doc, and intake email together in
one approval batch; execute each only on explicit per-item approval. Send/create
nothing before approval.
-
Find the slot. Soonest 50-minute window in the next 5 business
days where all confirmed attendees are free — use FindMeetingTimes over
their calendars. The event is a Teams meeting (CreateEvent with
is_online_meeting=true). Build the invite but hold until approved.
-
Build the agenda from the extracted deliverables/tasks, in this fixed
order, time-boxed to total 50 minutes:
- Welcome & intros
- Project goals & scope
- Deliverables walkthrough
- Ways of working & responsibilities
- Timeline & milestones
- Risks / dependencies
- Next steps & action owners
-
Place the agenda in the meeting invite body and save it as a Word doc
in the user's OneDrive (docx skill → save to output/).
-
Send the intake email to info@contoso.com with the new-assignment
table below, filled from the extracted plan. Use English field labels.
Any field not present in the deck gets a clear placeholder ([to follow] /
[unknown]) — never fabricate a value.
| Field | Source from extracted plan |
|---|
| Client name | Client / customer name |
| HubSpot ID | HubSpot ID ([to follow] if absent) |
| Project name | Project name |
| Billing (fixed or time & materials) | Billing type |
| Rate | Rate / fee |
| Execution / lead time | Timeline / duration |
| PO | Purchase order (To follow if pending) |
| Consultants on this project | Consultant(s) named |
| Project manager | Project manager |
Guardrails
- Resolve every person before use; present unresolved names separately and ask.
- Hard stop between phases — Phase 2 starts only after attendee confirmation.
- Per-item approval gates in Phase 2; no silent sends or creates.
- All dates relative to the user's local time zone; convert "next 5 business
days" to explicit dates.
- If a deck read fails after retries, say so and ask for a re-attach — never
substitute sample data.