em-reporting v0.7.0 Reporting

Leadership- and client-facing reporting: the Monday executive briefing (monday-briefing), the Monthly Business Review prep (em-mbr-builder), and the bi-weekly pre-board report (em-board-report).

Problem it solves: the Monday catch-up. Consolidates last week across every tool into a prioritized, leadership-grade briefing so you know what to do first.

monday-briefingUser skillMedium · ~20-80k

Generates a weekly chief-of-staff executive briefing - pulling email (M365), meetings (Fireflies), tasks (Notion) and project boards into a polished, prioritized summary. It doesn't just summarize: it surfaces what matters, flags risk, and recommends what to do first.

Reference - what it brings, its process, and what it needs
BringsA 2-to-10-minute scannable digest of the prior 7 days - Top 3 priorities, "Waiting on You" sorted by staleness, risks and chief-of-staff judgment - so nothing goes stale without you knowing.
Process
  1. Set the range (default previous 7 days).
  2. Gather from connected services in parallel.
  3. Cross-reference, flag risks, prioritize (Eisenhower).
  4. Render the briefing per the template; offer follow-ups.
NeedsMicrosoft 365FirefliesNotionPM boards (optional)
em-board-reportUser skillMedium · ~20-80k

Assembles the bi-weekly pre-board report for an account into a board-ready Outlook .eml/HTML (PARTE 1, no external links) plus internal EM prep notes (PARTE 2, never sent). Pulls the engagement map, client verbatim + sentiment, KR pace, wins, commercial risks, roadmap, velocity and expansion into one idempotent Board Account Reports row.

When to use it
build the board reportpre-board report for the accountboard prep for the account
How it works
  1. Resolve manifest configReads the account's board block for the records DB, engagements, .eml, and language, halting if the records DB is missing.
  2. Set the reporting windowUses the period slug and fetches the prior Board Account Reports row to compute deltas.
  3. Gather sources per engagementPulls the engagement map, client verbatim, KR pace, wins, material risks, and roadmap - tolerant of a single source failing.
  4. Assemble the payloadBuilds the deterministic renderer payload with the engagement map, worst-of account status, per-engagement detail, and deltas.
  5. Write the row and renderWrites an idempotent Board Account Reports row, then renders PARTE 1 (.eml + HTML) and the internal PARTE 2 prep notes.
Example
You say
"/em-board Q2-Q4 'Acme Robotics'" - Acme has two engagements (Platform, Mobile) and a prior board row to compare against.
You get back
A Draft "Board Report - Acme Robotics" row, a ready-to-send board .eml + HTML (PARTE 1), and internal prep notes (PARTE 2), with any TBD fields flagged.

Gotcha: PARTE 2 is internal prep only - it never goes into the .eml.

Gotcha: It reads the source rows (wins, risks, OKRs, Conversation Log) and never edits them.

# or run it explicitly
/em-board Q2-Q4 "Acme Robotics"
Reference - what it brings, its process, and what it needs
BringsRemoves the recurring quincena toil of hand-building the board report, and gives real period-over-period history through one durable row per account × period.
Process
  1. Resolve config; confirm window + account.
  2. Gather engagement map, verbatim, KRs, wins, risks.
  3. Compute worst-of status + arithmetic deltas.
  4. Write the Board Account Reports row; render .eml + PARTE 2.
NeedsNotion MCPTabilityboard_account_reports_db
em-mbr-builderUser skillMedium · ~20-80k

Assembles a month's Monthly Business Review prep for an account into a Qualitara-branded HTML brief, a ready-to-send executive-summary .eml, and - when a deck renderer is configured - a pptx. Pulls wins, active/escalated risks, OKR pace, an optional team-maturity section, a stakeholder recap and per-engagement health into one idempotent MBR Records row.

When to use it
build the MBR briefMBR prep for the accountmonthly business review brief
How it works
  1. Resolve the MBR configReads the account's mbr block for the records DB, engagements, report folder, and renderer, halting if the records DB is missing.
  2. Set the monthUses the YYYY-MM window (default: prior complete month) and fetches the prior MBR Records row for month-over-month deltas.
  3. Gather sources per engagementPulls wins, risks, OKR pace, optional maturity, the stakeholder recap, and per-engagement health, tolerant of per-source failures.
  4. Assemble and write the rowBuilds the renderer payload and writes an idempotent MBR Records row.
  5. Render brief, .eml, and optional deckRuns the brief renderer (and a deck renderer if configured) into the month's report folder.
Example
You say
"/em-mbr 2026-05 'Acme Robotics'" - Acme has a maturity model configured, two engagements, and a prior May run.
You get back
A Draft "MBR - Acme Robotics - 2026-05" row, an HTML brief, an exec-summary .eml, and (since a deck renderer is configured) a pptx - including a maturity section with the month's delta.

Gotcha: It reads the source rows (wins, risks, OKRs) and never edits them.

Gotcha: The maturity section appears only when a maturity model is configured for the account; otherwise it is omitted.

# or run it explicitly
/em-mbr 2026-05 "Acme Robotics"
Reference - what it brings, its process, and what it needs
BringsThe EM walks into the client review prepared without hunting across systems, with month-over-month history and every claim linked back to its source row.
Process
  1. Resolve config; confirm month + account.
  2. Gather wins, risks, OKR pace, maturity, stakeholders.
  3. Compute counts, deltas, OKR pace, base camp.
  4. Write the MBR Records row; render HTML + .eml (+ pptx).
NeedsNotion MCPTabilitymbr_records_db
em-retention-reportUser skillLight · ~5-20k

Assembles an account's team retention report from its 1:1 satisfaction history, current Team Composition snapshot, and attrition data over a window (default 6 months). Computes a deterministic Team Retention Index, risk distribution and attrition counts, writes one idempotent Retention Reports row, and renders a Qualitara HTML report.

When to use it
retention reportteam retention/em-retention
Reference - what it brings, its process, and what it needs
BringsA grounded, at-a-glance view of team-health trends and attrition - computed from source rows, never guessed - without hunting across systems.
Process
  1. Resolve config; set the window + account.
  2. Gather 1:1 history, Team Composition, offboarding.
  3. Compute the Index, risk distribution, attrition.
  4. Write the Retention Reports row; render the HTML.
NeedsNotion MCPteam_composition_dbone_on_one_sessions_db
em-account-relationship-healthUser skillMedium · ~20-80k

Assembles an account's customer relationship-health report from its EM Conversation Log, Stakeholder map and Risk Matrix over a configurable window (default 6 months). Computes a deterministic Account Standing Index, sub-scores and aggregate counts, writes one idempotent Relationship Reports row, and renders a Qualitara HTML report.

Reference - what it brings, its process, and what it needs
BringsA grounded view of stakeholder sentiment, engagement coverage, conversation trends and commercial-risk posture - LLM narrative grounded only in computed data.
Process
  1. Resolve config; set the window + account.
  2. Gather conversation log, stakeholders, risk matrix.
  3. Compute the Standing Index + sub-scores.
  4. Write the Relationship Reports row; render the HTML.
NeedsNotion MCPconversation_log_dbstakeholders_dbrisk_matrix_db
em-qualify-out-reportUser skillLight · ~5-20k

The quarterly Qualify-out exit-decision review. The EM hand-fills a friendly local form scoring 47 account-exit signals Active / Clear / No data (No data = lacks data or out of EM scope), with notes, scope, participants and the agreed posture, under a sworn statement, and the skill folds it with the account relationship report into one tabbed HTML report - checklist + signed attestation, then the embedded relationship report - with a Download-PDF button and a draft .eml to the account's AM.

Reference - what it brings, its process, and what it needs
BringsA signed, structured read on whether an account is drifting toward an exit - a discussion artifact, not a unilateral decision - with computed active-signal counts and escalation triggers, on a quarterly cadence.
Process
  1. Start: render the local form for the EM to fill.
  2. Continue: resume from the latest export.
  3. Process: refresh the relationship report, render the tabbed report + .eml.
  4. Optionally upsert the Qualify-out records row.
NeedsPython 3qualify_out blockrelationship blockNotion MCP (optional row)
em-report-redteamUser skillMedium · ~20-80k

Red-teams a report record before it ships - plays the skeptical client against it, cross-checking weak or unsupported numbers against the spine boards (risk, tasks, conversation log, engagement health), surfacing missing counter-narrative, likely pushback and tone risks. Writes a sibling report row; never edits or overwrites the original.

When to use it
redteam
Reference - what it brings, its process, and what it needs
BringsCatches the weak claim before the client does - a pre-ship pressure test that never touches the report it's reviewing.
Process
  1. Read the report row (latest or by explicit id).
  2. Cross-check numbers against the spine boards.
  3. Surface missing counter-narrative, pushback points, tone risks.
  4. Preview; on explicit yes, write a new 'redteam' report row.
NeedsBashReadem_db.report