# Engineering Communication

> Communicating engineering facts to people who will act on them: stating what is true, what follows from it, what is still uncertain, and the options and recommendation when needed. Covers raising a risk early, saying no to a request in a way that leaves a yes on the table, resolving technical disagreement by making the checkable claim checkable, escalating without going around someone, and status updates during an incident. Use when bad news has to travel, when a risk is visible but unspoken, when you are being asked to commit to something you believe is not achievable, when a technical argument has gone two rounds without new information, when a message hedges every claim it makes, or when non-engineers need to make a decision that depends on a technical fact. Does not cover the numbers in an estimate (estimation-under-uncertainty), clarifying a requirement (requirements-and-acceptance), review comments specifically (code-review), or deciding to take on debt (technical-debt-decisions).

- Skill: `robsonkades/engineering-communication` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add robsonkades/engineering-communication`
- Raw SKILL.md: https://api.skillmd.com/api/skills/robsonkades/engineering-communication/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: robsonkades (https://skillmd.com/u/robsonkades)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/robsonkades/engineering-communication

---


# Engineering Communication

## Purpose

Most engineering communication fails in one of two directions. It buries a decision the reader
must make inside a technical narrative they cannot parse — so nothing happens. Or it is so
hedged that the reader extracts no claim at all — so they assume everything is fine, which was
never what you meant.

The output that works is short, ordered by what the reader must do, and explicit about what you
do not know. That last part is what makes the rest of it trustworthy.

## Workflow

1. **Decide what the reader must do** with this message: approve something, choose between
   options, be aware, or act now. If nothing, consider not sending it.
2. **Lead with the decision, action or supported conclusion**, not the investigation story.
   "The production-volume rehearsal took six hours" preserves what was actually measured;
   a forecast for production needs its assumptions.
3. **Say what follows** in their terms — money, users, dates, risk — not in yours. "Six hours"
   needs context: establish whether the backfill blocks exports before claiming unavailability.
4. **Separate what you know from what you believe.** Mark the boundary explicitly: measured,
   inferred, assumed. A reader who cannot tell which is which will either over-trust or
   discard the whole message.
5. **For a decision, give viable options and recommend one with a reason.** An awareness-only
   update does not need invented alternatives. Preserve required controls and distinguish
   the proposed option from an approved commitment.
6. **Send it early.** Every one of these is worth more the sooner it arrives, and a risk raised
   after it materialises is not a warning, it is an explanation.
7. **Check the draft against the inputs.** Preserve dates, scope, uncertainty and ownership;
   do not invent measurements, confidence percentages, approval, recipients or delivery promises.
   Use a visible placeholder or one focused question for missing decision-critical facts.

Deliver the message at the requested length and register, plus only material unresolved
facts needed to finalize it. Drafting a message does not authorize sending it to others;
use an external communication tool only within explicit authorization for that action.

## Rules

- Lead with the conclusion. Chronological narrative — "first I looked at, then I found" — makes
  the reader assemble the point themselves, and busy readers stop before the end.
- Never hedge a fact you have verified. "The query does a full scan of 4 million rows, measured
  on the replica" is a fact; writing "it seems like it might be slow" throws away the work you
  did and the reader's ability to act on it.
- Do not present an unverified claim as verified. Say which it is: "reported by the owner", "inferred from the
  logs", "I am assuming". Confidence claimed and then withdrawn costs more credibility than
  uncertainty stated up front.
- "I don't know" is a complete and professional answer when followed by how you would find out
  and how long that takes.
- Say no to the request, not to the person, and pair it with what you can do. "Not by Friday at
  this scope; the read path alone is achievable by Friday" is a usable answer;
  "that's not possible" ends a conversation that needed to continue.
- Raise a risk early, in writing, with owner, trigger, impact, decision deadline, and next escalation
  point. Do not repeat an unchanged warning as noise, but re-surface it when evidence, severity,
  exposure, ownership, or the decision window changes—or when the agreed escalation condition fires.
- Do not soften a message until the claim disappears. If the reader can come away thinking
  everything is fine when it is not, the message failed however comfortable it was to send.
- Blame is not diagnosis. Describe the mechanism and contributing conditions. Preserve accountable
  ownership where audit, security, safety, or deliberate policy violations require it, without
  turning a causal analysis into a judgement about character.
- Match the register to the audience: a non-engineer needs the consequence and the decision,
  not the mechanism. Keep the mechanism available below, for whoever wants it.

## References

- **Message patterns, with worked examples** — `references/message-patterns.md`. Raising a
  risk, reporting a slip, saying no, an incident status update, and a post-incident summary —
  each in a version that fails and a version that works, with what changed and why. Read before
  sending a message that carries bad news or asks for a decision.
- **Disagreement and escalation** — `references/disagreement-and-escalation.md`. Separating
  checkable claims from preferences, ending a two-round argument, disagreeing with someone more
  senior, when and how to escalate without going around a person, and disagree-and-commit. Read
  when a technical argument is stuck or a decision needs someone else.

