Skip to content
AI & Agents
Skill

/cja-executive-briefing

Generates a polished, leadership-ready performance briefing with KPI tiles, executive narrative bullets, and a driver analysis — all as a print-ready HTML document. Always use this skill when someone asks for an executive summary, performance briefing, leadership readout,

From plugin
adobe-skills
162160 skills6 agents4 MCP
Install
$ npx -y skills add adobe/skills --skill cja-executive-briefing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cja-executive-briefing

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generates a polished, leadership-ready performance briefing with KPI tiles, executive narrative bullets, and a driver analysis — all as a print-ready HTML document. Always use this skill when someone asks for an executive summary, performance briefing, leadership readout,

SKILL.md

cja-executive-briefing.SKILL.md
name: cja-executive-briefing
description: >
  Generates a polished, leadership-ready performance briefing with KPI tiles,
  executive narrative bullets, and a driver analysis — all as a print-ready HTML
  document. Always use this skill when someone asks for an executive summary,
  performance briefing, leadership readout, stakeholder update, or business review
  — even if they don't say "executive" explicitly. Trigger phrases include:
  "write a summary of last week's performance," "create a briefing for our
  leadership team," "produce a monthly business review," "what should I tell
  executives about our metrics," "generate a performance narrative," "QBR summary,"
  "weekly business review," "board update," "stakeholder briefing," "how did we
  do last week," or "give me a performance snapshot." When in doubt, use this skill
  — it is always better to produce a polished briefing than a raw data dump.
license: Apache-2.0
metadata:
  author: Adobe
  version: "1.0"

Executive Briefing (Customer Journey Analytics)

Produce a polished, leadership-ready performance document. Executives do not read data tables — they read narratives that answer "are we growing?", "what changed?", and "what do we do about it?"

This skill converts CJA data into a briefing that a VP or C-suite leader can read in under 3 minutes, with supporting data available for those who want to dig deeper.

Tone: business impact, not technical metrics. Write "Revenue grew 12% driven by a strong Paid Search week" not "metrics/revenue increased by 0.12 per metrics/sessions."

---

CJA MCP Tools Used

  • `describeCja(DATAVIEW_CONTEXT_GUIDE)` — understand the business context of the data view
  • `listComponentUsage` — identify the north-star and supporting KPIs
  • `findMetrics` — resolve user-specified or discovered metric IDs
  • `findCalculatedMetrics` — include custom business KPIs
  • `runReport` — pull KPI values for current and comparison period
  • `searchDimensionItems` — identify top driver dimension values

---

Phase 0 — Setup

1. Call `findDataViews` to list available data views. 2. If the user hasn't specified a data view, present the list and ask which to use. 3. Call `setDefaultSessionDataViewId` with the chosen ID. 4. Confirm the reporting period (default: last 7 days) and the audience for the briefing (executive, board, team lead).

---

Phase 1 — Establish Context

1.1 Load data view context

Call `describeCja("DATAVIEW_CONTEXT_GUIDE")` to understand:

  • What business the data view represents (e-commerce, media, SaaS, etc.)
  • The primary conversion event and revenue metric
  • **Calendar conventions and timezone.** Record these values — they are

inputs to every date computation in 1.2:

  • `WEEK_START_DOW` — day of week each week starts on (Sunday, Monday, …).

Default: **Monday** (ISO 8601) if the context guide doesn't specify.

  • `FISCAL_YEAR_START_MONTH` — month the fiscal year begins. Default:

**January** (calendar year) if the context guide doesn't specify.

  • `TIMEZONE` — for example, `America/Los_Angeles`.
  • `CALENDAR_SOURCE` — one of `"context guide"` (values came from `describeCja`),

`"default fallback"` (the context guide didn't expose them and you used the defaults above), or `"user override"` (the user explicitly specified them).

This context determines what counts as the "north-star metric" and what language to use in the narrative (e.g., "subscribers" vs "customers" vs "users").

1.2 Determine reporting period

Infer the period type from the user's request. Do not stop to ask — proceed immediately.

The principle

Two runs of this skill on the same data view, period type, and prompt MUST produce identical `current` and `comparison` date ranges. Determinism comes from (a) reading calendar conventions from 1.1 instead of improvising, and (b) applying the alignment rule for the period type without taste calls.

Period type → alignment rule

Pick exactly one period type from the user's request:

| User request | `PERIOD_TYPE` | Current period | Comparison period | |---|---|---|---| | "last week" / unspecified | `weekly` | Most recent full week ending before today, aligned to `WEEK_START_DOW` (exactly 7 days) | The week immediately before, same alignment | | "this month" / "MTD" | `month-to-date` | 1st of current month → today | 1st of prior month → same day-of-month as today | | "last month" | `monthly` | Prior full calendar month (1st → last day) | The month before that | | "this quarter" / "QTD" | `quarter-to-date` | Start of current fiscal quarter → today; fiscal quarters derived from `FISCAL_YEAR_START_MONTH` | Same days into the prior fiscal quarter | | "last quarter" / "Q[N]" | `quarterly` | Prior full fiscal quarter | The fiscal quarter before that | | Custom date range | `custom` | Use as specified | Equal-length window ending the day before `current.startDate` |

Universal invariants (must hold for every period type)

Before calling `runReport`, verify all six:

1. `current.startDate < current.endDate` 2. `comparison.startDate < comparison.endDate` 3. `comparison.endDate < current.startDate` (no overlap) 4. The day after `comparison.endDate` equals `current.startDate` (contiguous) 5. `current` and `comparison` have the **same length in days** 6. The alignment rule for `PERIOD_TYPE` is satisfied:

  • `weekly`: both `startDate`s fall on `WEEK_START_DOW`
  • `monthly`: both `startDate`s fall on the 1st of a month
  • `month-to-date`: both `startDate`s fall on the 1st; both `endDate`s have the same day-of-month
  • `quarterly`: both `startDate`s fall on the first day of a fiscal quarter
  • `quarter-to-date`: both `startDate`s fall on a fiscal quarter start; both `endDate`s are the same number of days into the quarter
  • `custom`: lengths match; contiguity holds

If ANY invariant fails, recompute the dates. **Never** paper over a mismatch by editing the footer.

Worked examples — today is Tuesday, May 26, 2026

These examples assume

Read more
Ships withadobe-skills

Repository of Adobe skills for AI coding agents.

Get the whole plugin

Other skills on adobe-skills.