em-people-management v0.8.6 People · piloted on Acme Robotics

1:1s, feedback, follow-up, and 30-60-90 onboarding - developing your people. Turns 1:1 conversations into documented SBI feedback, and runs the full onboarding lifecycle (create / review / close) against a per-account Onboarding Status Tracker, with checkpoint tasks and stakeholder summary emails.

Problem it solves: feedback and 1:1 signal usually live only in spoken conversation and disappear. This plugin captures the 1:1, turns verbal feedback into written SBI, persists it, and forces a follow-up loop so nothing goes silent.

Pipeline em-1on1-logger em-feedback-builder em-feedback-follow-up
Onboarding em-onboarding-plan-builder em-onboarding-reviewer em-onboarding-closer
em-1on1-loggerUser skillHeavy · ~80-300k

After a 1:1, pulls the Fireflies transcript, captures a 0-10 satisfaction score plus its driver, detects signals, computes risk and trend, and writes a private 1:1 Sessions row. Pushes only four scalar indicators to the public Team Composition row.

When to use it
log my 1:1 with SamI just had a 1:1 with Samlog the 1:1 I had with Sam todaycapture Sam's satisfaction scorerecord this 1:1
How it works
  1. Resolve account and transcriptDetermines the account, resolves the 1:1 Sessions database from the manifest, then pulls the Fireflies transcript for the teammate and date.
  2. Extract signals with quotesSets each boolean satisfaction signal from the transcript, capturing a verbatim quote for every flag that fires.
  3. Compute the score deterministicallyApplies the fixed-arithmetic scoring formula to produce the 0-10 score - never an LLM guess.
  4. Write the private session rowCreates a 1:1 Sessions row with the score, risk level, driver, sectioned summary, action items, blockers, and asks-of-manager.
  5. Update the public dashboardPushes only the at-a-glance fields - score, risk, trend, last 1:1 date, primary driver - to the public Team Composition row.
Example
You say
"log my 1:1 with Sam from today" - a Fireflies transcript where Sam (Acme Robotics) is energized about shipping the auth work and reports the regression suite going from 40% to 85-90%, with one coaching moment.
You get back
A private 1:1 Sessions row with score 8.5 (fixed arithmetic), driver Work, risk Healthy - and only the five dashboard fields pushed to Team Composition. Offers a hand-off to em-feedback-builder for the coaching moment.

Gotcha: The score is never picked by vibe - it is computed by the fixed formula from the extracted boolean signals.

Gotcha: Personal / well-being context lives only in the private well-being section - never in the abstract, a task, the public row, or the daily plan, and never feeds the score.

# or run it explicitly
/em-1on1-logger --person Sam --date today
Reference - what it brings, its process, and what it needs
BringsA durable, structured record with trend / risk tracking over time - and a privacy boundary: engagement observers see the indicator, not the "why".
Process
  1. Source the Fireflies transcript by name + date.
  2. Carry forward open follow-ups; detect signals.
  3. Ask the EM for the 0-10 score + driver; categorize.
  4. Write the private session; push 4 indicators public.
NeedsFirefliesNotion MCPPeople Mgmt Hub
em-feedback-builderUser skillMedium · ~20-80k

Turns 1:1 conversations into a structured follow-up email using the SBI framework at one of two severities - Proactive (coaching) or Challenge (consequences explicit). Produces a ready-to-open .eml, logs it, and creates a follow-up task.

When to use it
write feedback email for Samdraft feedback from my 1:1 with Samput that feedback in writingformalize the feedbackdocument feedback
How it works
  1. Source the feedbackResolves the account, then pulls the Fireflies transcript or accepts pasted notes to extract the feedback moments.
  2. Pick moments and severityLists each detected feedback point and asks which to include, the severity (Proactive or Challenge), and the language.
  3. Draft in SBI+EBuilds the email with an opening, recognition, one numbered Situation-Behavior-Impact-Expectation block per point, and a severity-dependent close.
  4. Write the .eml and log itWrites the .eml file to the output directory and logs the feedback row via em_db.feedback.create.
  5. Schedule the follow-upCreates a follow-up task due 14 days out via em-task-manager, deduped by a :followup source key.
Example
You say
Pasted 1:1 notes with Sam: "Sam absorbs pressure silently and only reports after resolving issues - I need visibility the same day." Severity: Proactive.
You get back
A ready-to-open .eml (Subject "Follow-Up - 1:1 Feedback | Sam") with one SBI+E section on surfacing conflicts earlier, a Proactive close, a logged Feedback Log row, and a 14-day follow-up task.

Gotcha: The skill never sends - it drafts the .eml and waits; the EM sends manually.

Gotcha: One feedback point per SBI+E block - multi-topic feedback becomes separate numbered sections, not a merged idea.

Reference - what it brings, its process, and what it needs
BringsBridges the verbal-to-written gap with a proven framework, date-stamps it, and guarantees a follow-up exists. Never sends without explicit confirmation.
Process
  1. Extract feedback moments from transcript / notes.
  2. Ask which to include, severity, language; draft SBI.
  3. Confirm, then write the .eml to the output dir.
  4. Log via the writer; create a follow-up task.
NeedsFirefliesem_db.feedbacktask-manager
em-feedback-follow-upUser skillLight · ~5-20k

Re-checks feedback when it comes due. Gets due rows from the writer, pulls recent Fireflies signals to gauge whether behavior changed, then lets the EM act per item - Done, Escalate or Snooze - before anything is written.

When to use it
what feedback needs follow-upreview feedback follow-upsfeedback follow-up checkany feedback due
How it works
  1. List what is dueReads em_db.feedback.due for every feedback row whose follow-up is pending and due on or before today.
  2. Gather signals per itemPulls recent Fireflies signals for each teammate since the feedback was shared to gauge whether behavior changed.
  3. Present with a recommendationShows the teammate, theme, signal summary, and a recommendation, then waits for the EM's choice per item.
  4. Act: Done, Escalate, or SnoozeUpdates the row through the writer; on Escalate it can hand off to em-feedback-builder for a Challenge email.
Example
You say
"any feedback due?" - one row is due: Sam got Proactive feedback on communication a month ago, and the last 1:1 shows Sam proactively flagging a scheduling conflict.
You get back
The item is shown with the signal and a "mark Done" recommendation. The EM picks Done; the row's follow-up status flips to Done through the writer, with the log row URL printed.

Gotcha: It never drafts new feedback - that is em-feedback-builder; this skill only re-checks what was already logged.

Gotcha: It never touches the feedback tables directly - every read and write goes through em_db.feedback.

Reference - what it brings, its process, and what it needs
BringsCloses the feedback loop. Surfaces what's due with an evidence-based recommendation, and routes escalations into a Challenge email - so feedback gets re-checked, not forgotten.
Process
  1. List due feedback via the writer.
  2. Pull Fireflies signals since feedback was shared.
  3. Per item, wait for Done / Escalate / Snooze.
  4. Update the row through the writer.
NeedsFirefliesem_db.feedbackfeedback-builder
em-onboarding-plan-builderUser skillHeavy · ~80-300k

Creates a teammate's 30-60-90 plan: resolves the role template, branches on hire type (new hire / internal transfer / vendor placement), drafts three phases where every milestone is outcome + criterion + evidence + a week-1 quick win, runs an actionability check, writes the tracker row + plan body, drafts the client sign-off email, and schedules the Day-30/60/90 checkpoint tasks.

When to use it
create a 30-60-90 plan for Samnew onboarding plan for Sambuild an onboarding plan30-60-90 for the new hire
How it works
  1. Resolve role and hire typeResolves the account and tracker DB, the role template, and branches on hire type (New Hire / Internal Transfer / Vendor Placement).
  2. Draft the three phasesBuilds Days 0-30, 31-60, and 61-90, each milestone as outcome + criterion + evidence + target date, plus a week-1 quick win.
  3. Run the actionability checkRejects vague, activity-shaped goals; every milestone must carry a measurable criterion and an evidence slot.
  4. Write the row and plan bodyWrites the plan via em_db.onboarding.create_plan (status Pending Approval) and drafts the client sign-off email.
  5. Schedule the checkpointsCreates the Day-30 / 60 / 90 (and a vendor Fit) checkpoint tasks in JP_TASKS, deduped by source key.
Example
You say
"build a 30-60-90 for Sam, Senior Backend Engineer joining Platform at Acme Robotics, new hire, plan approver Jordan Lee."
You get back
A New-Hire ramp with three phases (e.g. quick win "ship a reviewed doc fix by day 3", "ship the first meaningful PR by day 10"), a tracker row at Status Pending Approval with the plan body and a draft sign-off email to Jordan Lee, and three checkpoint tasks scheduled.

Gotcha: Milestones are capped at five per phase - goal overload is the top pitfall.

Gotcha: The client sign-off email is drafted into the plan body, never sent - the EM sends it.

Reference - what it brings, its process, and what it needs
BringsA client-validated, outcome-shaped onboarding contract instead of a vague checklist - and the checkpoints land in your task list so none get missed.
Process
  1. Resolve role template, person, hire type, approver.
  2. Draft the 3 phases; reject activity-shaped goals.
  3. Write the row (Pending Approval) + plan body; draft sign-off.
  4. Schedule the Day-30/60/90 (+ Fit) checkpoint tasks.
Needsem_db.onboardingtask-manager
em-onboarding-reviewerUser skillMedium · ~20-80k

Runs the active 30/60/90 checkpoint. Pulls the teammate's 1:1s, Fireflies and tasks, proposes did/didn't ticks + evidence per milestone (never auto-ticks - the EM confirms), flags behind-schedule via leading indicators, updates the tracker, routes action items to JP_TASKS, and drafts a stakeholder summary email.

When to use it
s onboarding\
Reference - what it brings, its process, and what it needs
BringsKeeps the plan current straight from the 1:1s with evidence-backed status, catches a stalling ramp early, and gives the client a "how it's going" update each checkpoint.
Process
  1. Get the active row; gather 1:1s / Fireflies / tasks.
  2. Propose ticks + evidence; EM confirms.
  3. Assess vs criteria; flag behind-schedule; log + update.
  4. Close the checkpoint task; draft the stakeholder email.
NeedsFirefliesem_db.onboardingtask-manager
em-onboarding-closerUser skillMedium · ~20-80k

Closes a plan at 90 days. Runs the retro (every milestone vs its evidence), sets Status Completed, captures "what to keep for the next hire", hands off to Growth Paths with role-relevant next goals, records the actual ramp time, and drafts the final 90-day stakeholder summary email. Does not touch performance reviews.

When to use it
s onboarding90-day reviewwrap up the onboarding
Reference - what it brings, its process, and what it needs
BringsA clean "done" with evidence and client sign-off, a smooth handoff from onboarding to ongoing growth, and reusable notes for the next hire.
Process
  1. Get the row; confirm ~90 days (or forced early close).
  2. Retro all milestones vs evidence; set Completed.
  3. Write "keep for next hire"; create the Growth Path.
  4. Draft the final stakeholder summary email.
Needsem_db.onboardingem_db.growth
em-career-1on1User skillLight · ~5-20k

Runs a career-focused 1:1 as a structured, gated conversation: a named Aspiration, a specific next-role Gap, one-to-three dated Growth actions, and the EM's own commitment to unblock it. Writes one growth path only after the EM confirms.

When to use it
s career\s next role\
Reference - what it brings, its process, and what it needs
BringsTurns a vague "where do you want to go" chat into a durable growth path with real gates, so career conversations stop dead-ending on "not sure, just keep growing".
Process
  1. Ask Q1 Aspiration; reject an unnamed role/scope.
  2. Ask Q2 Gap; reject a vague or unnamed gap.
  3. Ask Q3 dated Growth actions and Q4 the EM's commitment.
  4. Confirm, then write the growth path via em_db.growth.create.
NeedsBashReadem_db.growth
em-conflict-loggerUser skillLight · ~5-20k

Logs a conflict / tension "clearing conversation" structured with Nonviolent Communication: the observable facts, the separate story in the EM's head, the unmet need, and a specific request plus follow-up date - each a gate that rejects a character judgment or a vague ask.

Reference - what it brings, its process, and what it needs
BringsForces a conflict conversation into facts-vs-story-vs-need instead of blame, and guarantees a dated follow-up so tension doesn't just fade unaddressed.
Process
  1. Capture the observable facts; reject character judgments.
  2. Separate out the "story in my head".
  3. Name the unmet need and a specific request + follow-up date.
  4. Confirm, then write the row via em_db.conflict.
NeedsBashReadem_db.conflict
em-english-assessorUser skillMedium · ~20-80k

POC that produces a developmental, CEFR-anchored spoken-English assessment for one teammate from their real Fireflies meeting speech, scoring the transcript-derivable traits (grammar, vocabulary, discourse, interaction) with verbatim evidence, and renders it as a local HTML report. Pronunciation and fluency-timing need audio and are out of scope for this POC. Coaching input only - never a certified level or a hiring/assignment gate.

When to use it
s Englishs English from last month/em-english-assessor
Reference - what it brings, its process, and what it needs
BringsA grounded, evidence-backed read on a teammate's spoken English progress for coaching, instead of a gut-feel guess.
Process
  1. Pull the teammate's meetings over a window; drop non-English ones.
  2. Tag register; extract verbatim utterances; gate on sample coverage.
  3. Filter ASR garble; score each trait against the CEFR with evidence.
  4. Render the local HTML report.
NeedsFirefliesReadWrite
em-goal-setterUser skillLight · ~5-20k

Turns a fuzzy intention into a SMART goal (Doran 1981), encoding each of the five criteria as a gate that rejects the vague form - no metric, no date, no named account or growth path - then writes one growth path once the EM confirms.

Reference - what it brings, its process, and what it needs
BringsStops "get better at X" from passing as a goal - every recorded goal has a real number, a real date, and a real reason it matters.
Process
  1. Specific: what exactly, for whom.
  2. Measurable: what number moves, from what to what.
  3. Achievable + Relevant: why realistic, which account/path it serves.
  4. Time-bound: a date, not "soon"; confirm, then write via em_db.growth.create.
NeedsBashReadem_db.growth
em-performance-review-drafterUser skillMedium · ~20-80k

Drafts one teammate's performance review from the platform's own evidence - 1:1 history, feedback log, growth goals, skip-level sessions referenced by id only - with every claim cited to a real record and dated. Never invents a claim, never rates or finalizes: rating and finalization stay a human act in the web app.

When to use it
s performance review\
Reference - what it brings, its process, and what it needs
BringsA grounded first draft (strengths, growth areas, impact, goals) built from what's actually on record, so review season is assembly and judgment, not a blank page.
Process
  1. Gather evidence: 1:1 board + metrics, wins, feedback, growth, skip-levels.
  2. Draft strengths / growth areas / impact / goals, each cited by date.
  3. Preview the draft for the EM.
  4. On explicit yes, write ONE draft row via em.performance_review_upsert.
NeedsBashReadem.performance_review_upsert
em-pulse-runnerUser skillLight · ~5-20k

Runs the anonymous quarterly team pulse / eNPS survey lifecycle - create (3 pulse questions + 1 eNPS question, share the anonymous survey link), monitor response counts from k-anonymous aggregates, and close with the eNPS summary. Never correlates a response to a person; cells under 4 responses are suppressed.

Reference - what it brings, its process, and what it needs
BringsA real, privacy-safe read on team sentiment each quarter - delivery-side only, distinct from client NPS which stays commercial's.
Process
  1. Create: period + questions via em_db.pulse.create; share the token link.
  2. Monitor: response counts from the aggregate boards only.
  3. Close: em_db.pulse.close, then the eNPS aggregate with suppression rule applied.
NeedsBashReadem_db.pulse
em-skip-level-loggerUser skillLight · ~5-20k

Logs a skip-level 1:1 (CTO-meets-team, EM absent) from a Fireflies transcript or pasted notes - person, date, themes, sentiment, and the three health signals (morale / management effectiveness / attrition) each backed by a verbatim quote, plus escalations and commitments.

Reference - what it brings, its process, and what it needs
BringsA durable, evidence-backed read on what the team tells the CTO without the EM in the room - sensitive by default, never copied into other records or the changelog.
Process
  1. Extract person, date, themes, and the three health signals with quotes.
  2. Extract escalations and commitments.
  3. Preview; write only after an explicit yes via em_db.skip_level.log.
  4. Show the account's skip-level rollup trends.
NeedsBashReadem_db.skip_level