Deck Refresh

Update numbers across the deck. The deck is the source of truth for formatting; you're only changing values.

Environment check

This skill works in both the PowerPoint add-in and chat. Identify which you're in before starting — the edit mechanism differs, the intent doesn't:

Either way: smallest possible change, existing formatting stays intact.

This is a four-phase process and the third phase is an approval gate. Don't edit until the user has seen the plan.

Phase 1 — Get the data

Use ask_user_question to find out how the new numbers are arriving:

Also ask about derived numbers: if revenue moves, does the user want growth rates and share percentages recalculated, or left alone? Most decks have "+15% YoY" baked in somewhere that's now stale. Whether to touch those is a judgment call the user should make, not you.

Phase 2 — Read everything, find everything

Read every slide. For each old value, find every instance — including the ones that don't look the same:

Variant Example
Scale $485M, $0.485B, $485,000,000
Precision $485M, $485.0M, ~$485M
Unit style $485M, $485MM, $485 million, 485M
Embedded "revenue grew to $485M", "a $485M business", axis labels

A deck that says $485M on slide 3, 485 on slide 8's chart axis, and $485.0 million in a footnote on slide 15 has three instances of the same number. Find-replace misses two of them. You shouldn't.

Where numbers hide:

Build a list: for each old value, every location it appears, the exact text it appears as, and what it'll become. This list is the plan.

Phase 3 — Present the plan, get approval

This is a destructive operation on a deck someone spent time on. Show the full change list before editing a single thing. Format it so it's scannable:

$485M → $512M (Revenue)
  Slide 3  — Title box: "Revenue grew to $485M"
  Slide 8  — Chart axis label: "485"
  Slide 15 — Footnote: "$485.0 million in FY24 revenue"

$120M → $135M (Adj. EBITDA)
  Slide 3  — Table cell
  Slide 11 — Body text: "$120M of Adj. EBITDA"

FLAGGED — possibly derived, not in your mapping:
  Slide 3  — "+15% YoY" (growth rate — stale if base year didn't change?)
  Slide 7  — "12% market share" (was this computed from $485M / market size?)

The flagged section matters. You're not just executing a find-replace — you're catching the second-order effects the user would've missed at 11pm. If the mapping says $485M → $512M and slide 3 also has +15% YoY right next to it, that growth rate is probably wrong now. Flag it; don't silently fix it, don't silently leave it.

Use ask_user_question for the approval: proceed as shown, proceed but skip the flagged items, or let them revise the mapping first.

Phase 4 — Execute, preserve, report

For each change, make the smallest edit that accomplishes it. How that happens depends on your environment:

Either way, the standard is the same:

Don't reformat anything you didn't need to touch. The deck's existing style is correct by definition; you're a surgeon, not a renovator.

After the last edit, report what actually happened:

Updated 11 values across 8 slides.

Changed:
  [the list from Phase 3, now past-tense]

Still flagged — did NOT change:
  Slide 3 — "+15% YoY" (derived; confirm separately)
  Slide 7 — "12% market share"

Run standard visual verification checks on every edited slide. A number that got longer ($485M$1,205M) might now overflow its text box or push a table column width. Catch it before the user does.

What you're not doing