Skip to content
Back to skills

Cli Forge Plume

ASecurity

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, ...

  • 5 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
toolsgoexpressrailsgitdocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add Destynova2/cli-code-skills --skill cli-forge-plume --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Cli Forge Plume
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/destynova2-cli-forge-plume/badge)](https://www.skillsdirectory.com/skills/destynova2-cli-forge-plume)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Files in this skill

  • SKILL.md6.8 KB
  • agents/openai.yaml251 B
  • references/ai-tells.md4.3 KB
  • references/relance.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.