spyrae/corpspeak/corpspeak-en

Claude Code and agent skill by spyrae/corpspeak

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

A joke translator between blunt speech and corporate English. Four modes: blunt to corporate, corporate to blunt (decoder), bullshit density detector, and batch translation of whole emails and threads. Use when the user asks to 'translate this to corporate', 'how do I say this at work', 'what did they actually mean', 'decode this email', 'how much of this is filler', 'corporate speak', or 'corporate bullshit'. For Russian text use corpspeak-ru instead. Do NOT use for: writing a real business email that has to land well, stripping AI slop from text (that is deslop-en), editing copy for publication, or genuinely defusing a live conflict.

Install

npx vskill@latest install spyrae/corpspeak/corpspeak-en

SKILL.md

Corpspeak EN - the corporate translator

A joke two-way translator: blunt speech into corporate English and back.

The Russian version is corpspeak-ru. They are not translations of each other. Russian and English corporate speak fail in different ways and need different idioms.

The core. Every utterance carries three layers:

  • proposition - what was actually said
  • affect - how annoyed the speaker is
  • implicature - what is meant but left unsaid

Corporatization keeps the proposition intact, launders the affect through grammar, and buries the implicature. The decoder runs it backwards: it digs out the implicature and puts the affect back.

The comedy comes from precision, not density. A translation lands when the original thought is fully recoverable but the output reads like a slide. If the proposition is gone, that is not a translation, it is filler.


Six moves

The generative core. Works on any input, including the ones no dictionary lists.

#MoveMechanismExample
1Agent deletionremove whoever is at fault"I forgot" → "it wasn't captured in the tracker"
2Nominalizationverb becomes noun"everything broke" → "we're seeing service degradation"
3Hedgingstrip the certainty"no" → "that feels like a heavy lift for this cycle"
4Parkingdefer the conflict instead of resolving it"you're wrong" → "let's take this offline"
5Jargon substitutionplain word becomes business word"no time" → "I don't have the bandwidth"
6Positive reframefailure becomes opportunity"we blew the quarter" → "the quarter surfaced great learnings"

Moves stack. The higher the intensity, the more of them land on one sentence.


Intensity scale (1-3)

Default is 2. If the user names no level, use the second.

Level 1 - polite. Ordinary workplace courtesy, no jargon, legible to anyone.

"I don't know yet, let me find out and get back to you."

Level 2 - standard corporate. Jargon, hedging, passive voice. Recognizable but still functional.

"I don't have visibility into that. Let me check with the owner and come back with an update."

Level 3 - the BigTech slide. Maximum density, frameworks, workstreams, process references. Meaning is at the edge but still recoverable.

"Team, I don't have full visibility on this one. I'd suggest we park it as a separate workstream, prioritize it in the next planning cycle, and I'll circle back with an update once I've synced with the domain owner."

The level 3 rule: density rises, the proposition survives. Word salad with no proposition is not funny, it is just empty.


Mode 1: BLUNT → CORPORATE (primary)

Triggers: "translate this to corporate", "how do I say this at work", "make this presentable".

Steps:

  1. Extract the proposition: what the speaker actually claims or demands.
  2. Read the affect: irritation, despair, contempt, exhaustion, indifference. Affect decides which moves fire.
  3. Identify the target, if there is one. "You're an idiot" and "this code is idiotic" translate differently: the first goes to "I have questions about the decision-making process", the second to "this module needs refactoring before handover".
  4. Stack the moves per intensity level.
  5. Check reversibility: can the original thought be recovered from the output?

Output: one line at the requested level. If no level was named, give three variants marked 1/2/3.

Input: fuck if I know
1 → I'm not sure, let me check.
2 → I don't have visibility into that, it sits outside my area.
3 → Team, I don't have full visibility here. I'd suggest routing this
to the domain owner and circling back with an update.
Input: I don't give a shit, do whatever you want
1 → I don't have a preference, your call.
2 → I don't hold a strong view here, I'll defer to the team.
3 → No blockers from my side. I think this decision is best made at
the team level - you're closer to the context.
Input: who the hell wrote this, nobody can maintain it
1 → This code is hard to maintain, worth a look together.
2 → I have some concerns about the maintainability of this module.
Worth walking through it with the author.
3 → The review surfaced some maintainability risk in this module.
I'd suggest we capture it as tech debt and prioritize it in the
upcoming planning cycle.

Mode 2: CORPORATE → BLUNT (decoder)

Triggers: "what did they actually mean", "decode this", "translate from corporate".

Steps:

  1. Find the hedge and work out what it is covering.
  2. Restore the agent: who is the real subject in the agentless sentence.
  3. Unwind nominalizations back into verbs.
  4. Dig out the implicature: what they meant but did not say.
  5. Put the affect back into plain speech.

Output: the blunt version plus one "Bottom line" about what is actually wanted.

Input: Let's circle back on this after planning
Output: Never.
Bottom line: the question is closed, there will be no discussion.
Input: Interesting idea, let me think about how we'd implement it
Output: No.
Bottom line: a refusal, but with nothing in writing.
Input: There are some nuances to how this works
Output: It doesn't work.
Bottom line: you're expected to figure it out and not ask in public.
Input: I'd like to sync to level-set expectations
Output: You did the wrong thing.
Bottom line: prepare to explain yourself, and not over email.

Mode 3: bullshit detector

Triggers: "how much of this is filler", "is this bullshit", "break down this email".

The metric. Bullshit Density = sentences with no new fact / total sentences × 100%

A sentence carries a fact if it contains at least one of: a number, a date, a name, a concrete action with a subject, or a checkable claim. Everything else is connective tissue.

BDDiagnosis
0-20%a normal working email
20-50%standard corporate, survivable
50-80%filler email, the real content is one paragraph
80%+cover-your-ass, the facts are missing on purpose

Output:

Bullshit Density: NN% [diagnosis]
What was actually said:
- [fact 1]
- [fact 2]
Red flags:
- "[quote]" → [what it means]
Bottom line: [what they want from you]

Mode 4: batch

Triggers: a whole email, a thread, a long message.

  1. Keep the structure: subject, greeting, paragraph breaks, sign-off.
  2. Translate by paragraph, not by sentence, or the connective logic dies.
  3. Never touch names, numbers, dates, system names, or links. They are the anchors the comedy hangs on.
  4. Do not normalize length. The corporate version runs 2-3x longer than the original, and that is part of the joke. The reverse runs 5x shorter.
  5. In a thread, preserve who is replying to whom.

If the user names no direction and the input is obviously corporate, run the decoder (mode 2). That is almost always what they want.


Lexicon: register calibration

Not a lookup table. Apply the moves to the actual sentence first; come here to catch the tone. Extended version in references/lexicon.md.

Not knowing

DirectCorporate
fuck if I knowI don't have visibility into that
how would I knowI'm not the right owner for this one
nobody knows how this worksthe documentation could use a refresh

Saying no

DirectCorporate
nothat feels like a heavy lift for this cycle
that's nonsenseI'd want to pressure-test the assumptions here
you're wrongI have a slightly different read on this
I'm against itI'd like to register a dissenting view

Pushback

DirectCorporate
stop moving the dateI'd like to lock a firm date
you promised and didn't deliverI'm seeing a gap against what we agreed on [date]
did you even read what I sentmy earlier note may have gotten buried in the thread

Bad news

DirectCorporate
everything is brokenwe're seeing degraded service
we won't make itthere's timeline risk, we should revisit scope
I screwed upa gap was introduced during implementation
we're all getting firedthe org is being restructured for efficiency

Indifference and scope defence

DirectCorporate
I don't care, do whateverno blockers from my side, I'll defer to the team
figure it out yourselvesI'll let your team take ownership on this
not my jobthat sits outside the current scope
I don't have timeI don't have the bandwidth this sprint

Register markers. Nouns: bandwidth, scope, ownership, visibility, alignment, blocker, learnings, workstream, appetite, lift, signal. Verbs: circle back, sync, align, socialize, action, unpack, park, escalate, level-set, double-click, loop in, take offline. Cushions: "just to level-set", "help me understand", "I want to make sure I'm tracking", "from my side", "as a next step", "I'll follow up with an update".

One or two markers per sentence. More than that reads as parody rather than translation.

Standing euphemisms (for the decoder)

WrittenMeans
let's circle back on thisnever
interesting ideano
there are some nuances hereit doesn't work
this needs further explorationnobody has looked at it
we should sync on thisyou did the wrong thing, and not over email
a decision was made following discussiondecided without you
as part of an efficiency initiativelayoffs
we've heard your feedbacknothing will change
aggressive timelineimpossible timeline
we're operating with high ambiguitynobody knows what's happening
let's not escalate thisdon't tell my manager
great questionI don't know
we're working on itwe haven't started
per my last emailread the thing I already sent you
just following up on thisyou have been ignoring me
with all due respectwith no respect whatsoever
for visibilityI am creating a paper trail
adding [name] for awarenessI am telling your manager

What kills the joke

MistakeSymptomFix
Lost propositionthe original thought can't be recoveredput the specifics back
Merely polite"I'm not sure" instead of corporateadd moves 2, 4, 5
Collapseevery angry input yields "let's sync on this"hold the concrete object: code, deadline, person, process
Lost target"you're an idiot" and "this code is idiotic" come out the samestep 3 of mode 1
Profanity in corporate outputany obscene root surviveszero exceptions, mode 1 output is always clean
Empty level 3word salad with no meaningdensity rises, proposition stays
Explaining the joke"here I applied agent deletion"return the result only

Output Format

Always return the translation only, with no breakdown of the moves. Explain the mechanism only when asked.

Mode 1 (level named): one line
Mode 1 (no level named): three lines, marked 1 / 2 / 3
Mode 2: blunt version + "Bottom line" row
Mode 3: the metric block (template above)
Mode 4: the whole document, structure preserved

Smoke test

Run this after editing the skill. If an output collapses into a generic phrase, the collapse guard is broken - fix step 3 of mode 1.

input: this deadline is fantasy, we physically cannot ship by then
output: The current estimate doesn't line up with the release date.
I'd suggest we either cut scope or move it a sprint.
input: this crap fell over in prod again, third time this week
output: Flagging a third incident on this service this week. I'd
suggest we treat it as systemic rather than one-off.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
3
Repository forks
1
7-day trend score
7

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/spyrae/corpspeak/corpspeak-en/badge)](https://verified-skill.com/skills/spyrae/corpspeak/corpspeak-en)

Something wrong with this skill or its page? Tell us.