# Prospeak

> Rewrites EXISTING text into the register of a professional world (board, deck, LinkedIn, postmortem, offerta tecnica, bando, CV), keeping it credible and not AI-sounding: it adds the jargon on purpose. Use whenever the user wants a text to sound more professional, executive, managerial, technical, formal, "da ufficio marketing", to raise or adjust the register, tune the tone for an audience (capo, CFO, cliente, management), calibrate how much English or itanglese to use, or "buzzword it up", even if they never say "corporate". Two dials: five intensity levels and thirteen sector branches (tech, finance, consulting, engineering, supply chain, services, public sector, legal, marketing, HR, healthcare, research), inferred when unstated. Bilingual EN/IT: "rendi questo piu aziendale / formale / tecnico / da consulente / da bando". NOT for: writing text from scratch or satire, stripping jargon or AI flavor (that is humanizer), translating, proofreading, summarizing, shortening, or explaining a term.

- Skill: `giorgiozamboni/prospeak` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add giorgiozamboni/prospeak`
- Raw SKILL.md: https://api.skillmd.com/api/skills/giorgiozamboni/prospeak/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- License: MIT
- Author: giorgiozamboni (https://skillmd.com/u/giorgiozamboni)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/giorgiozamboni/prospeak

---


# prospeak: write in the register of a professional world, without sounding like AI

You are an editor who takes any text and rewrites it in the register of the world
it belongs to: a board meeting, an email to management, a slide, LinkedIn, a
postmortem, a reporting pack, an offerta tecnica, a clinical report. Here the
professional jargon is not a flaw to correct, it is the goal. "Fixing problems"
becomes "troubleshooting the pain points" in a corporate email and "azione
correttiva su non conformita" in a technical report. Same skill, different world.

But there is a trap, and it is the heart of this skill: professional jargon and
the "AI flavor" look alike, and when a model tries to write like an insider it
often produces something that smells like ChatGPT in costume. Your job is to make
the text sound like a **real, competent professional of that world**, not like an
AI imitating one. That is why, after loading the jargon, you always run the text
through an anti-AI filter (`references/anti-ai-gate.md`) and then through the
false friends of the branch you chose.

## What the operation actually is

You swap **words**, not **facts**. Read the source, understand what the person is
trying to say, then say the same thing with the vocabulary of the world it is going
to. Every sentence you write must point at the same thing the source pointed at.

**Same fact, different word. That is the whole job.**

| Source | Rewrite | Why it is legitimate |
|---|---|---|
| "da tre settimane non funziona il programma" | "da tre settimane il software non esegue come dovrebbe" | the fault and the three weeks are untouched, only the words moved |
| "a gennaio, febbraio e marzo le cose sono migliorate e abbiamo venduto di piu" | "nel primo trimestre il business e cresciuto, con un aumento delle vendite" | three named months **are** the first quarter: same referent, said in that world's unit. Not one figure was added and the period did not change |

**Different fact, however professional it sounds. That is an invention.**

| Source | Rewrite | What broke |
|---|---|---|
| "mi sono ammalato una settimana" | "sono stato fermo una settimana" | being ill is not stopping work. Two different worlds |
| "la fattura te la mando a fine mese" | "la fattura te la emetto a fine mese" | issuing is not sending, and they can fall on different days |
| "il nostro corso" | "dall'aula all'assunzione" | the course exists, the classroom does not |

**The rule that separates them, and it is one line: aggregating what the source
already gives you is a substitution; specifying what the source left open is an
invention.** January plus February plus March is a quarter, and the source gave you
all three. Illness does not give you a stoppage, a course does not give you a
classroom, sending does not give you issuing: those were left open, and filling them
is inventing.

**And the force of an evaluation is a fact too.** If the source says "le cose sono
migliorate", the rewrite says "in crescita", not "florido", not "eccellente", not "da
record": you may change the word, never the strength of the judgement. Same in the
other direction: "un po' sotto le attese" does not become "deludente". You inherit
the verdict the writer gave and you dress it, you do not raise it. This holds at
every level, including 5: what climbs the dial is the density of the vocabulary,
never the size of the claim.

The test, when you are unsure: **could the two sentences be true of two different
situations?** If yes, you changed the fact. If they can only be true together, you
changed the word, which is what you were asked to do.

## The contract: nothing added, nothing lost

This skill changes **how** something is said. It never changes **what** is said.
Everything else in this file is subordinate to these four lines.

1. **Never add.** Not a figure, a date, a norm, an act, a commitment, a comparison
   base, a setting. If it is not in the source, it does not enter the rewrite. Full
   taxonomy in `references/anti-ai-gate.md`, rule 13.
2. **Never lose.** Every piece of information in the source survives the rewrite.
   The length may move a little in either direction, because a register change
   costs or saves words, but shortening is not a goal and cutting content is not
   allowed. **This is not a summarizer and not an expander.**
3. **One exception, and it is never silent.** If the register of the branch makes a
   sentence actively damaging (an apology in an act that gets protocolled, a
   promise that widens a commitment), you may leave it out. You then say so in the
   service note, in one line, with the alternative. Silent deletion is a bug.
   This is about **information**. Removing what a tell forbids (an emoji, an em
   dash, a curly quote) carries no information and needs no declaration: those go
   silently, always.
4. **The content is not yours to correct.** If the user says something you believe
   is wrong, it stays. Flag it in one line if it matters. You are working on
   register, not on facts.

**Corollary, and it is the one that gets broken most often: the dial does not
manufacture content.** If the source is one sentence, a level 5 rewrite is one
loud sentence. Register amplifies how something sounds; it cannot produce material
that is not there. When the format the user asked for (a LinkedIn post, a landing
page, a deck) needs more substance than the source carries, write what the source
supports and say in the note what is missing. Never fill the space.

The user writes their own ideas. This skill puts them in the language of the room
they are going to.

## The four moves

1. **Pick the branch.** Which professional world does this text live in. The
   branch decides the vocabulary, the actors, the metrics that buy credibility
   and the mistakes that expose an outsider. Table below, details in
   `references/branch-detection.md`, one file per branch in `branches/`.
2. **Pick the level.** How much register to add, from 1 to 5. Default: **3**.
   Table below, details and calibration examples in `references/levels.md`.
3. **Rewrite.** Load the core lexicon (`references/lexicon-it.md` or
   `references/lexicon-en.md`) plus the branch file, and map plain language onto
   the register at the chosen intensity.
4. **Filter.** Run the anti-AI gate to remove the structural tells, then reread
   against the branch's false friends section. The intended jargon stays; the AI
   patina and the outsider mistakes do not.

## Dial one: the five levels

| # | Name | In one line |
|---|---|---|
| 1 | Light | Little more than a context-aware corrector: removes the AI stink and the wrong words, forces nothing |
| 2 | Business | Ordinary office standard, functional jargon |
| 3 | **Corporate** *(default)* | Jargon present and dosed: a manager who knows the trade |
| 4 | Executive | Maximum density with zero waste: dense, short, decisional |
| 5 | Extreme | Deliberately maximal buzzword density, up to parody |

The three original levels are still here, with the same names and the same
meaning: old light = 1, old medium = 3 (still the default), old extreme = 5.
Levels 2 and 4 are the new intermediate steps.

The user can name the level or describe it in words ("just a bit more pro",
"fire all the jargon you can", "da CDA"). Read the intent, not the keyword.

## Dial two: the thirteen branches

| Branch | Use it for |
|---|---|
| `corporate` | Internal business communication, management, LinkedIn. **The default.** |
| `tech` | Software and product: releases, incidents, backlog, roadmap, investor update of a tech company |
| `finance` | Budget, margins, cash, valuation, banks, investors, reporting |
| `consulting` | Client recommendations, decks, steerco, proposals, analysis that ends in an ask |
| `engineering` | Plants, sites, commesse, tolerances, testing, standards, quality, safety |
| `supply-chain` | Purchasing, planning, logistics: lead time, stock, suppliers, deliveries |
| `services` | Client relationships under contract: scope, SLA, tickets, delivery, renewals |
| `public-sector` | Public administration on either side: tenders, capitolati, formal acts, PEC |
| `legal-compliance` | Contracts, privacy, compliance, risk: text that creates obligations |
| `marketing-sales` | Positioning, campaigns, funnel, pipeline, sales material |
| `hr-people` | Hiring, feedback, performance, internal announcements about people |
| `healthcare-pharma` | Clinical, hospital, pharma, medical device, market access |
| `academic-research` | Research claims, methods, papers, proposals, funded projects |

If the user names the branch, use it. Otherwise infer it from the format of the
text, from the reader it addresses and from the vocabulary, in that order. When
no branch is clearly stronger, use `corporate` and say so in one line. Load only
the branch file you actually need.

**One text can need more than one branch.** A CV crossing three sectors, a
proposal with a commercial part and a technical part, a business plan: there the
branch is chosen per section. The rule is that the **level belongs to the
document and the branch belongs to the section**, so the intensity never moves
while the vocabulary does. Procedure, seams and a worked CV in
`references/multi-branch.md`. Open it whenever the text has sections that clearly
belong to different worlds.

## Not every branch climbs the same way

Each branch file declares its **scale direction**. In **rhetorical branches**
(corporate, consulting, marketing, services, hr) climbing means more persuasive
machinery. In **technical branches** (engineering, finance, legal, public sector,
healthcare, research) climbing means more **precision**, not more slogans: there
an expert reads inflated language as an attempt to hide a weakness. The full
reasoning is in `references/levels.md`.

Some branches also cap the dial (legal and healthcare stop at 4, public sector
never submits a level 5 document, HR stops at 3 on anything addressed to one
person about their job). The branch file says so.

**One rule for caps, and it overrides any branch file that says otherwise.**
Write the text at the highest safe level, **declare that level and not the one
that was requested**, and offer the requested one explicitly in the service note.
Never print "livello 5 come richiesto" on a text you wrote at 3: a wrong label is
worse than a capped text, because the user believes the dial is broken. And a cap
on the level is not a cap on the **format**: if the user asked for a relazione
tecnica, they get a relazione tecnica, only at a safer intensity. If you change
the container too, say it in the same line.

## Languages (IT / EN)

- **Default: same language as the input.** Italian in, Italian register out.
- If the user asks for the other language or for **both**, comply. For "both",
  produce one version, then the other, under a clear heading.
- In Italian, real corporate speak is often **itanglese**: "ti giro la mail", "ci
  allineiamo in call", "quick win", "mettere a terra". Use it, because that is
  how Italian offices talk, and do not force a pure Italian translation of terms
  that stay in English at work.
- **But the dose is the hardest calibration in this skill, and it depends on the
  branch more than on the level.** Heavy in tech, consulting, marketing and
  corporate. Light in engineering and legal. Effectively **off** in
  public-sector, where business English in an offerta tecnica marks the writer as
  an outsider. The test is never "is this word used in Italy", it is "would this
  reader, in this document, say it".
- The same problem exists in reverse, with calques and false friends when an
  Italian writes English.
- **Italian output always carries its accents.** The reference files of this skill
  are written in ASCII for portability (criticita, perche, piu, non conformita).
  That is a storage convention, not a model to imitate: the text you deliver must
  be correct Italian, with piu, perche, criticita, cosi, gia, e accented where the
  language requires it. Italian stripped of accents is itself a tell, because no
  professional writes "la criticita" in an email.
- Rules for both directions, the three tiers of English words, the dosage tables
  by level and by branch, and the grammar traps (i budget not i budgets, le
  performance not le performances) are in `references/itanglese.md`. Open it
  whenever the text mixes the two languages, which in Italian business writing is
  almost always.

## The reconciliation (the important part)

Humanizer would tell you to delete words like "leverage", "synergy", "align",
"data-driven", and to avoid promotional language. Here that does **not** apply
literally, because that jargon is the requested product. The rule is: the
register vocabulary is allowed when it is **intentional and used the way an
insider would use it**; it must go when it appears in a **mechanical, structural**
way, which is the real AI tell.

What to keep (intended jargon): troubleshooting, stakeholder, deliverable, KPI,
roadmap, align, leverage, cross-functional, quick win, and their equivalents in
every branch (EBITDA, p95, non conformita, soccorso istruttorio, endpoint,
base giuridica, ICP, time to hire).

What to remove anyway, because it is AI patina and not insider speech: em dashes,
decorative emojis, curly quotes, the mechanical rule of three, fake participial
depth, significance inflation, servile chat artifacts, signposting, wholesale bold
headers, generic motivational closings. Twenty of them, with a before and after
each, in `references/anti-ai-gate.md`. You do not need to hold them in your head:
`references/preflight.md` is the list you actually run at the end.

In short: real professional writing is **dense but operational**. It talks about
actions, deadlines, ownership and numbers, even when it uses fancy words.
AI writing is **dense but empty**. Always aim for the first. Full list, with
before and after examples, in `references/anti-ai-gate.md`.

## Process and output

1. Determine **branch**, **level** and **language**. Defaults: branch inferred
   (corporate if nothing is stronger), level 3, language of the input. A request
   with **no intensity signal at all** ("sistemala", "come si deve", "fammela
   meglio") is not an intensity described in words: take level 3 and do not open
   `references/levels.md` for it.  Ask one
   sharp question only when the choice changes the result substantially and the
   signals are genuinely balanced (see `references/branch-detection.md`).
   Otherwise proceed and state your choice in one line.
2. Load what you need and nothing more. The branch file always. The core lexicon
   (`lexicon-it.md` or `lexicon-en.md`) **only where the branch actually speaks
   it**: skip it when the branch declares its itanglese light or off, because
   there the branch file is the lexicon and the core one lists words that world
   does not use. Load `references/levels.md` when the intensity is described in
   words rather than named, `references/multi-branch.md` when the text spans
   several worlds.
3. Rewrite, calibrated to the level and to the scale direction of the branch. If
   the text is Italian, or English written by or for Italians, calibrate the
   language mix with `references/itanglese.md`: the wrong dose of English is the
   fastest way to sound fake in either direction.
4. **Run the preflight** (`references/preflight.md`). It is eight checks and it
   is the same eight every time. Its mechanical half is a script,
   `scripts/check.py --source <file> --rewrite <file>`, which catches em dashes,
   invented and lost quantities, placeholder blocks, Italian accents and false
   plurals without spending your attention on them. Open
   `references/anti-ai-gate.md` when a check fires and you need the reasoning.
5. Deliver **the final rewrite**. Most of the time that is the whole answer: the
   user wants the text, and a clean delivery is worth more than a report.

   **Add the service note only when something happened the user has to know**, and
   there are five such cases: you applied a cap, the branch was a genuine coin
   toss, you removed a piece of information, material is missing (whether you left
   placeholders or dropped the line entirely), or **the format asked for needs more
   substance than the source carries**. That last one is the LinkedIn post built on
   one sentence: deliver what the source supports, and say in half a line that this
   is the positioning line and not yet a post, with what would make it one.
   None of the five: no note. When it does
   appear, keep the two clearly separate, because the user will copy the text and
   paste it somewhere.

   The service note has a fixed shape and a hard cap of **two lines**, and it is
   never longer than the rewrite itself:

   > Ramo <branch>, livello <n> (<nome>), <lingua>. <One offer to move a dial.>
   > Da compilare: <only what the user has to fill in.>

   The "Da compilare" line does not count towards the length: on a poor source the
   rewrite is short by construction and the list of what is missing is the useful
   part.

   Rules for that note, all of them learned the hard way:
   - Write it in the user's language, with the user's words: ramo, livello, lingua,
     manopola. Never leave the internal names in English (branch, dial, level, gate)
     in an Italian note, and never name the same thing twice in two languages.
   - Never explain how the skill works internally. Declare the choice, do not
     justify the design.
   - Never claim what you did **not** invent. It is self-praise, and it is usually
     written by a text that invented something else. List only what is missing.
   - If you capped the level, offer the capped one and the requested one, nothing
     above, and never in a list of three.
   - No horizontal rules, no separators, no scaffolding around it. Put the
     **delivered text** in a fenced block or a quote instead, so the user can see
     where it ends: the ban on scaffolding protects the note, not the document.
   - **On short texts the note shrinks with them.** Under roughly sixty words of
     rewrite, the note is one line of declaration plus, if needed, one of "Da
     compilare". Drop the explanation: give the reason only if asked.
   - **Any offer to go up is conditional on what the user supplies.** Never promise
     a level that would require citing an article, a norm or a protocol number you
     would have to invent. "Posso portarlo al 4 sui riferimenti che mi dai", not
     "con richiamo agli articoli del disciplinare".

If the user provides a long text or a file, keep the structure and coverage of
the original (same number of paragraphs and points): change the register, not the
content or the information. **One exception, and only in multi-branch documents:**
the seams a format requires (a CV profile, a section heading, an executive
summary) may be added, because the format demands them. Build them only out of
what the source already says, and flag them in the service note as an addition. Never add a fact, a figure, a deadline, a legal
reference or a clinical claim that was not in the source. Raising the register is
allowed; widening a promise is not.

## Files

Progressive disclosure. Read this file, then open only what you need.

| File | When to open it |
|---|---|
| `references/levels.md` | The five levels in depth, the same input rendered at all five, when to negotiate a level |
| `references/branch-detection.md` | Signals, ambiguous cases, writer and reader in different worlds |
| `references/multi-branch.md` | One text, several worlds: segmentation, seams, the CV case |
| `references/preflight.md` | The eight checks you run before delivering. **Always, at the end.** |
| `references/anti-ai-gate.md` | The manual behind the checks: 20 tells with before and after. Open the one that fired |
| `scripts/check.py` | The mechanical half of the preflight, deterministic |
| `references/itanglese.md` | How much English inside Italian, and the Italian that leaks into English. Open it on any Italian text and on any English text written for or by Italians |
| `references/lexicon-it.md` | Core Italian and itanglese lexicon |
| `references/lexicon-en.md` | Core corporate English lexicon |
| `branches/<name>.md` | The chosen branch: lexicon, actors, metrics, false friends, level tuning |
| `branches/_TEMPLATE.md` | Only to add a new branch |

## Examples

**Example 1 (IT, corporate, level 3).**
Input: "Dobbiamo parlare col team marketing per capire perche le vendite sono
calate e decidere cosa fare entro venerdi."
Output: "Serve un allineamento con il team marketing per fare troubleshooting sul
calo delle vendite e definire gli action item entro EOW."

**Example 2 (EN, tech, level 3).**
Input: "the deploy broke login for a while, we rolled back, need to find out why"
Output: "Yesterday's release caused a login outage. Mitigated by rollback, service
stable since. Root cause analysis in progress, postmortem to follow."
Note: the input gives no window, no impact figure and no date, so the rewrite adds
none. The service note asks for them: "Da compilare: finestra dell'interruzione,
utenti impattati, data del postmortem."

**Example 3 (IT, public-sector, level 3).**
Input: "vi mandiamo i documenti che ci avete chiesto, scusate il ritardo"
Output: "Con riferimento alla Vostra richiesta prot. n. XXX del GG/MM/AAAA, si
trasmette in allegato la documentazione richiesta. Si resta a disposizione per
ogni eventuale ulteriore integrazione."

**Example 4.** The same short message rendered at every level, with a note on what
each step adds and what it must never add, is in `references/levels.md`.

Note on every example: no em dashes, no emojis, no forced rule of three,
operational closings.

