Open-source skills for Claude Code & Codex

Executive Presence Framework

Two agent skills for high-stakes workplace communication. One writes the words you need. The other refuses to, and makes you write them instead.

Same files run on Claude Code and Codex — both read the SKILL.md format.

Two skills, one distinction

The split is the whole design. A drill where the model hands you a model answer up front is just coaching with extra steps — so the practice skill is built around a single rule it isn't allowed to break.

executive-presenceThe coach

Diagnoses what the moment actually requires, picks the frameworks, and writes the words you'd say or send — with [placeholders] for your numbers.

Use when you have a real situation to handle in the next hour.

executive-presence-practiceThe drill partner

Gives you a scenario with hard numbers, then stops. You write the answer. Then it critiques your exact words against the framework's standard.

Use when you want to get better, not get a script.

You don't usually invoke either by name. Describe a situation — "I have to tell leadership on Thursday that the migration is slipping by a month" — and the coach engages. Say "drill me on BLUF" and the practice skill does. The dividing line is whether you want to receive something or attempt something.

On Codex you can also name one explicitly with $executive-presence when it doesn't pick up on its own. Claude Code triggers on the description alone.

The 12 frameworks

Grouped by what they govern. Most scenarios need three or four of these, not all twelve.

Structure — how you order what you say

01 BLUF — Bottom Line Up Front

Answer or recommendation first, reasoning second. This is the default for any update, written or spoken.

Test: If they stopped reading after your first sentence, would they know what you want?

✗ "There were some challenges with the timeline and after talking to the team we realised there might be a delay…"
✓ "The launch will slip by 2 weeks. Root cause is 3 unresolved blockers in QA. Here's the recovery plan."

02 Minto Pyramid

Governing thought → three key arguments → supporting data. Vertical logic: each level answers "Why?" from the level above. Horizontal MECE: arguments at the same level are mutually exclusive and collectively exhaustive — no overlaps, no gaps.

Write bottom-up if you need to think it through. Send top-down always.

03 C·D·S — Claim · Data · So what

The assertion, the specific number that proves it, and the implication it drives. Every adjective is a candidate for replacement with a number.

VaguePrecise
"A lot of customers complained""38 support tickets in 72 hrs — 3× our weekly average"
"The team is pretty stretched""We're at 112% capacity — 3 engineers on 2 projects each"
"We're going to be a bit late""v2.0 ships Oct 3 — 21 days past the Sept 12 target"

No exact number? A range ("between 15–25%") or a reference anchor ("roughly 2× what we saw in Q1") both beat "quite a bit."

Thinking — how you work out what to say

04 PMI — Plus / Minus / Interesting

De Bono's tool for stress-testing your own position. A thinking tool, not a presenting tool: run it privately, then present the conclusion with BLUF or Minto. Plus — genuine upsides, with data. Minus — real downsides, with cost or probability. Interesting — questions raised, dependencies, second-order effects.

The Interesting column is the differentiator. It's where the real risks hide, and naming what you don't know yet signals seniority. Never leave it blank.

05 SCR — Situation · Complication · Resolution

Situation: stable context everyone agrees on. Complication: what changed or is at risk. Resolution: your recommendation, with urgency behind it.

The Complication is the sentence that matters most — it has to create genuine tension. "Sales are up" is a situation. "Sales are up but NPS dropped 12 points — we're growing ourselves into a churn problem" is a complication.

06 Story Structure — Hook · Context · Insight · CTA

For all-hands, investor updates, anything that has to be remembered a week later. Four hook types: a surprising stat, a specific moment, a provocative question, or a sharp contrast.

✓ "Eighteen customers are generating more revenue than twelve hundred."

Never open with "Today I want to talk about…" — it loses the room in three words. And the audience is the hero, not you.

Interaction — how you handle the room

07 Decisive Answering

There are three valid answers to a direct question: Yes (state it, then what happens next), No (state it, then the reason and what you'd recommend instead), or "I'll find out by [specific time]" — owning the gap, where "soon" and "ASAP" don't count.

Avoid "it depends," "that's a good question," "potentially, yes." These read as unpreparedness rather than caution, and they shift the cognitive work back to whoever asked.

08 Meeting Lead — the 3-sentence opening

"We're here to decide [specific decision]" — decide, not discuss. Then: "My recommendation is [stance] — [one-line reason with data]." Then: "I want to hear your [concerns on X], and we need to leave with [specific outcome]."

In someone else's meeting, still lead with your stance when given the floor. Don't wait for permission to have a position.

09 A·D·A — Acknowledge · Data · Affirm or Adjust

For handling pushback. Acknowledge that you heard it, respond with evidence rather than a louder opinion, then either hold your position with support or update openly.

CavingUpdating
Changing because someone pushed harder or outranks youChanging because they introduced new data or a valid argument
Destroys credibilityBuilds credibility

You have to know which one you're doing. From the inside, under pressure, they feel identical.

10 Read Before You Respond

Executive presence is not only what you say — it's what you understood before you spoke. Ask one question before you advocate: "Before I give you my view, what's driving the concern on your side?" That's reconnaissance, not softness. Then reframe for the audience: a CFO leads with the number and downside protection; a CEO with the strategic bet; engineering with the constraint; sales with customer impact and timing.

The most senior person in the room is often the one asking the sharpest question, not giving the longest answer.

Embodiment — how it lands, and what compounds

11 Pause Principle

Delivery is a claim about how much you trust your own content. A perfectly structured argument delivered fast, with rising intonation and no pauses, still reads as junior. Pause before answering — two seconds of silence signals consideration where "so, um" signals buying time. Pause after your recommendation. Land your sentences. Slow to about 80% pace as stakes rise.

Rushing to justify your own recommendation is the most common tell of low confidence.

12 Consistency Compound

Frameworks 1–11 optimise for the moment; this one optimises for accumulation, and over time it outweighs the rest. Every "I'll get back to you by Thursday" is a credibility contract — kept, it compounds; broken, it discounts everything you say afterwards. People judge your values by your behaviour when holding them costs you something. And your position has to be the same with your team, your manager, and your peers.

Presence collapses fast when people compare notes and find three versions of your view.

Install

The install script sets up whichever agents you already have. It takes --claude, --codex, --project and --dry-run:

git clone https://github.com/yshameer/executive-presence-framework.git
cd executive-presence-framework && ./install.sh

Or copy the folders yourself — a skill is just a directory, and each one is self-contained, so you can take only the coach if you want:

AgentPersonalProject
Claude Code~/.claude/skills/<repo>/.claude/skills/
Codex~/.agents/skills/<repo>/.agents/skills/

Claude Code can also install the repo as a plugin, which keeps it updatable — /plugin marketplace add yshameer/executive-presence-framework. On Codex, run /skills afterwards to confirm they loaded.

Using Claude.ai, ChatGPT, or another chat interface with no skill support? Paste one of the portable prompts — each inlines all 12 frameworks, so it works as a single paste with no file loading.

Full detail, including project-scoped installs for a whole team: INSTALL.md.

What the output looks like

Four worked demonstrations, three of them built on the same scenarios used to benchmark the skill:

Delivering a slip to leadership

The full five-part response on a high-stakes spoken moment: diagnosis, frameworks, the actual words, and a delivery note telling you exactly where to pause.

Saying no to your director on Slack

Same skill, ~80 words, no delivery note. Shows the coach sizing its response to the stakes instead of applying a fixed template.

When the skill tells you you're wrong

The user asks for help making a case. They're told to ask a question first — and then handed the case anyway, for the branch where listening doesn't resolve it.

A drill, end to end

Scenario with five hard numbers → your attempt → a critique quoting your exact words → one possible strong version, last.

Does it work?

Measured with each skill loaded against the same model with no skill, on held-out scenarios:

SkillWith skillWithoutDelta
executive-presence100% ± 0%47% ± 46%+53pp
executive-presence-practice100% ± 0%87% ± 23%+13pp

The ±46% on the coach's baseline is the interesting number. Unaided, the model was inconsistent rather than uniformly bad — sometimes a genuinely useful response, sometimes an essay about communication with no usable words in it. The skill's main effect is removing that variance.

Three evals per skill, three runs each. That's enough to show direction, not enough for a confident effect size — the full caveats are here, and worth reading before quoting the numbers.

Questions

What is an agent skill?

A folder containing a SKILL.md file whose YAML frontmatter gives a name and a description, followed by the instructions the agent follows. The agent loads it automatically when your request matches the description, so you don't invoke it by name. A skill folder can also hold reference files the agent reads before responding — which is how the 12 frameworks get loaded here.

Do Claude Code and Codex really use the same files?

Yes. Both read SKILL.md with name and description frontmatter, and both support an optional references/ subdirectory. Nothing in these skills is agent-specific, so the same directory works on either. Only two things differ: where the files are installed, and that Codex adds explicit $skill-name invocation on top of automatic triggering.

The one Claude-only piece is .claude-plugin/, which is Claude Code's packaging format for installing the repo as an updatable plugin. Codex ignores it.

Why are there two skills instead of one?

Because they need opposite behaviour. The coach writes the answer for you; the drill partner has to withhold it. Combined into one skill, the helpful instruction wins — the model shows you a model answer and there's no exercise left. The same reason applies to the portable prompts: use one at a time, in separate chats.

Why is frameworks.md duplicated in both skill folders?

So each folder works alone. A skill has to be self-contained to be copied out on its own, so the two copies are byte-identical by design and verified at commit time. If you edit one, edit both.

Will it invent numbers for me?

No — that's an explicit instruction in the skill. Facts it doesn't have come back as [bracketed placeholders], because a fabricated figure in an otherwise usable draft is worse than useless: it will get sent.

Where do the frameworks come from?

They're drawn from published work in communication and decision-making — Barbara Minto's Pyramid Principle, Edward de Bono's PMI, BLUF from military briefing practice, SCR from consulting practice. The synthesis, the examples, and the skill instructions are original to this project.