Ghostwrite, rewrite, and audit everyday professional exchanges in the user's voice: emails, replies, chat messages (Slack/Teams/Discord), LinkedIn DMs, client and recruiter answers, follow-ups, refusals, bad-news notes, and short announcements. Enforces zero AI tells (no em-dash reflex, no AI vocabulary, no assistant structure), front-loaded asks, one message = one ask, and target-language proofreading with correct diacritics. USE BY DEFAULT — even without a trigger word — whenever creating, ...
Scanned 8/31/2026
Install to Claude Code
npx -y skills add Destynova2/cli-code-skills --skill cli-forge-plume --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cli Forge Plume?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/destynova2-cli-forge-plume)More formats (shields.io, HTML) on the badges page.
---
name: cli-forge-plume
description: "Ghostwrite, rewrite, and audit everyday professional exchanges in the user's voice: emails, replies, chat messages (Slack/Teams/Discord), LinkedIn DMs, client and recruiter answers, follow-ups, refusals, bad-news notes, and short announcements. Enforces zero AI tells (no em-dash reflex, no AI vocabulary, no assistant structure), front-loaded asks, one message = one ask, and target-language proofreading with correct diacritics. USE BY DEFAULT — even without a trigger word — whenever creating, editing, rewriting, translating, or auditing ANY text the user will send or publish in their name: message, mail, réponse, annonce, post, commentaire, DM, description produit. Also triggers on 'écris un mail', 'réponds à', 'relance', 'follow up', 'reformule', 'humanize this', 'sounds like AI', 'trop formel', or 'ghostwrite'. Do not use for CV/LinkedIn profiles (cli-forge-profile), commit/PR/release text (cli-git-conventional), or project documentation (cli-forge-doc, cli-forge-readme)."
---
# Plume Forge
Ghostwrite everyday professional exchanges so they read as the user on a good
day: clear ask, human voice, zero AI tells, reply made easy.
The message is signed by the user. Claude is la plume — invisible. Same
ghostwriter contract as `cli-git-conventional`, applied to conversation
instead of commits.
Read `../gotchas.md` before producing output.
## Core Rules
1. **Never invent facts.** No made-up dates, prices, availabilities, promises,
or references to conversations that did not happen. Flag gaps with
`NEEDS-REVIEW` instead of smoothing them over.
2. **Zero AI markers.** No AI/model/assistant mentions, no meta-commentary
("voici un message que vous pouvez envoyer"), no leftover placeholders
(`[Nom]`), and none of the typographic, lexical, or structural tells listed
in `references/ai-tells.md`.
3. **The user's voice, not a template's.** Mirror their register (tu/vous,
chat vs email, dryness vs warmth) from the pasted exchange. When in doubt,
slightly more sober than the recipient, never more corporate.
4. **Target-language quality.** Proofread in the output language: French
diacritics and agreements, natural idiom, no anglicism where a plain native
word exists.
5. **Recipient calibration (the Singh rule).** Write at the recipient's level,
not above it: no jargon they don't share, no acronym they'd have to look up,
no literary flourish where a plain sentence does the job. A detail the
recipient can't act on leaves the message. Explaining to a non-expert means
one concrete example or analogy, not a lecture.
## Workflow
1. Identify the surface: email, chat message, LinkedIn DM, issue/ticket
comment, reply, relance, refusal, bad news, thank-you, ask.
2. Extract the exchange brief:
- recipient and relationship (client, colleague, recruiter, stranger),
- register (tu/vous, formal/casual) — inferred from history if pasted,
- the one ask or outcome,
- context the recipient already has (do not re-explain it),
- language, stakes, and anything forbidden (confidential, not yet public).
3. Structure front-loaded:
- **Ask or point first.** The recipient knows within 5 seconds what this
message wants.
- **Context second**, only what is needed to act.
- **Easy reply last**: closed question, proposed options or slots, or an
explicit "no is fine".
4. Apply the exchange lenses (adapted from `cli-forge-profile`):
- scan-and-recall: low cognitive load, hook before explanation, obvious
next action;
- proof before philosophy: a concrete fact beats an adjective.
5. For follow-ups, read `references/relance.md`: escalation ladder, new-info
rule, and the humor bank with its calibration rules.
6. Run the AI-tells pass with `references/ai-tells.md`. Rewrite, do not just
delete: a stripped sentence must still sound like the user.
7. Proofread in the target language, then deliver paste-ready copy.
## Writing Standards
- One message = one ask. Two asks = two messages, or one ask demoted to a P.S.
- Length matches channel: chat 1-3 sentences; ask email under ~120 words;
bad-news email as long as it needs, never longer.
- Subject lines carry the ask or the decision, not "Question" or "Suivi".
- Closed questions and numbered options make yes cheap. "Quand es-tu dispo ?"
loses to "mardi 14h ou jeudi 10h ?".
- No fake urgency, no guilt ("sans réponse de votre part..."), no
over-apologizing. One "désolé" maximum per message, and only if warranted.
- Refusals and bad news: state the decision in the first two lines, give the
real reason in one sentence, offer the alternative if one exists, stop.
- Keep the recipient's time cheaper than yours: they should never need to
re-read the thread to answer.
## Humor (summary — full mechanics in references/relance.md)
Light humor is a lubricant for follow-ups and low-stakes exchanges, not a
default. Hard rules:
- Punch at yourself or the situation, never at the recipient.
- One joke per message, placed after the ask or in a P.S. — the ask stays
clean and quotable.
- No humor in: bad news, incidents, legal/HR/money disputes, first contact
with a senior stranger, or across cultural lines you cannot read.
- Coffee-machine test: would the user say this line to this person out loud?
- If you hesitate, cut the joke. A short clean relance beats a forced one.
## Output Shape
```markdown
## Version recommandée
[paste-ready copy, in the target language]
## Pourquoi ça marche
- [1-3 bullets: reader, ask placement, register]
## Points à vérifier
- [only factual gaps, NEEDS-REVIEW items, or risk — omit section if empty]
```
Offer a shorter or softer variant only when the register is genuinely
ambiguous. Do not blend variants.
## Read References On Demand
- `references/ai-tells.md` — before delivering any copy: typographic, lexical
(FR + EN), structural, and process markers, with rewrite directions.
- `references/relance.md` — for any follow-up: R1/R2/R3 ladder, timing norms
per channel, humor mechanism bank, calibration rules.
## Relationship With Other cli-* Skills
| Situation | Better handoff |
|---|---|
| CV, LinkedIn profile, bio, portfolio copy | `cli-forge-profile` |
| Commit, branch, changelog, PR/release text | `cli-git-conventional` |
| README, project docs | `cli-forge-readme`, `cli-forge-doc` |
| Slide deck or talk abstract | `cli-forge-prez` |
Recommend, do not auto-run.
## Guardrails
- Do not send anything; produce copy for the user to send.
- Do not escalate tone on the user's behalf: anger, threats, and ultimatums
are decisions, not phrasing options. Offer the firm-but-clean version.
- Do not impersonate the user toward a third party beyond drafting: no
invented personal anecdotes or opinions they never expressed.
- Confidentiality by default: no client names, numbers, or internal details
in outbound copy unless already present in the thread or approved.
No comments yet. Be the first to comment!